Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

rs485 te printf sorunu

Başlatan skara1214, 26 Ocak 2013, 20:14:37

skara1214

Garip ama gerçek bir olay:D. ;
output_high(rxtxk);
delay_ms(20);
printf("%s\r",klavye);
delay_ms(10);
output_low(rxtxk);

eğer half dublex rs485 kullanıyorsanız v printf ten sonra delay vermeden  pini lowa çekince stringi yolluyor(string kısaysa 15 char gibi) ama"\r"yi yollamıyor bunun sebebini anlamış değilim klavye stringini 80 elemanlı tanımlayınca hiçbir şekilde  gitmiyor ama 15 tane tanımlayıp delay_ms(10) yazınca düzgün gidiyor.Printf tam olarak ccs c de nasıl çalışıyor?Böyle bir problemle karşılaşan oldumu?
Herkes ölür ama herkes gerçekten yaşamaz

Okan AKÇA

gözden kacırdıgınız şeyler vardır.bende ccs ile  yazıyorum bazı sorunlar oluyor sonra bakıyorumki benden kaynaklanan hatalar

skara1214

genelde bendede böyle oluyor ama anlamadım gitti valla ama bu delayı vermessen \r yi yollamıyor birtürlü
Herkes ölür ama herkes gerçekten yaşamaz

sadogan

output_low(rxtxk);

RS232 den veri yollamak bir şüreçtir
Rs485 bu komutla Rx moda geçyor ama işlemcinizin TX buffer henuz boşalmamıştır
Tx pininden gönderilen veri RS485 hatta geçememektedir.
TX buffer empty flagını kontrol edip Tx buffer boşalmışa yada yaptıgınız
gibi delay koyarak daha sonra
output_low(rxtxk);

yapmalısınız.

skara1214

#4
benimde aklıma böyle birşey geldi ama ccs c bir işlemi bitirmeden diğer işe geçiyorsa sıkıntı bir olay yani
@sadoğan evet hocam şift registeri kontrol edip stati değiştirince problem ortadan kalktı tşk ederim
Herkes ölür ama herkes gerçekten yaşamaz

sadogan

CCS ile ilgili deyil bu olay
RS232 de yapsaydın bu durum olmayacaktı
CCS rs232 mi 485 mi nasıl bilecek.