Birden fazla seri haberleşme durumunda?

Başlatan gokayk, 29 Şubat 2012, 15:13:01

gokayk

Merhabalar,

Bir mikrodenetleyiciye, rs232 ile çalışan iki sistemi yazılımsal olarak nasıl entegre edebiliriz?

#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)


baudrate lerinin farklı olduğunu, pinleride farklı kullanacağımızı düşünürsek, üstteki kodu iki kez yazmak saçma olacaktır diye düşünüyorum. Nasıl bir çözüm bulabilirim?

Şimdiden teşekkürler,

Kabil ATICI

Yazılımsal seri port oluşturabilir (uart) veya içinde 2 tane seri port bulunan bir işlemci kullanabilirsin (pic24 serisinden)
ambar7

gokayk

Alıntı yapılan: ambar7 - 01 Mart 2012, 10:16:02
Yazılımsal seri port oluşturabilir (uart) veya içinde 2 tane seri port bulunan bir işlemci kullanabilirsin (pic24 serisinden)

Yazılımsal seri porttan kastınız aşağıdaki gibi mi?

#USE RS232 (BAUD = 9600, XMIT = PIN_B0, RCV = PIN_B1, STREAM = COM_A)
#USE RS232 (BAUD = 9600, XMIT = PIN_B2, RCV = PIN_B3, STREAM = COM_B)

void main(void) {
   char c;
   
   fprintf(COM_A, "Online\n\r");
   fprintf(COM_B, "Online\n\r");
   
   while(TRUE) {
      c = fgetc(COM_A);
      
      fputc(c, COM_A);
      fputc(c, COM_B);
   }
}

skara1214

#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7,stream=x)
#use rs232 (baud=9600, xmit=PIN_C5, rcv=PIN_C4,stream=xx)
fprintf(x,"ss");
fprintf(xx,"ss");
fgets(klavye,x);
fgets(klavye,xx);

bu şekilde yapacaksın
Herkes ölür ama herkes gerçekten yaşamaz

Kabil ATICI

Seri port veri akışı çalışma mantığı bilindiği takdirde, işlemcinin herhangi bir bacağı aynı şekilde çalışacak şekilde program yazılması mümkündür.  Bu konuda çeşitli örnekleri de gördüm. (en azından assembler dilinde yazılmış örnekleri gördümb. C'yi  bilmiyorum).
ambar7

gokayk

Alıntı yapılan: ambar7 - 01 Mart 2012, 15:03:04
Seri port veri akışı çalışma mantığı bilindiği takdirde, işlemcinin herhangi bir bacağı aynı şekilde çalışacak şekilde program yazılması mümkündür.  Bu konuda çeşitli örnekleri de gördüm. (en azından assembler dilinde yazılmış örnekleri gördümb. C'yi  bilmiyorum).

RDA kesmesi dışında ;)

camby

- Yazılımsal olarak istenilen sayıda , istenilen farklı baud hızlarında iletişim yapan portlar tanımlanabilir. Teoride bir kısıtlama yok.

- Kesmeye yine yazılımsal olarak yapılabilir.

Tabi bence öğrenme amaçlı değilse yazılımsal seri iletişime bulaşmamak gerekir.

Not olarak : 18f'lerde 1'den fazla EUSART modülüne sahip picler var.