shadowcand
Üye
- Katılım
- 22 Haz 2009
- Mesajlar
- 52
- Puanları
- 1
Merhaba,PC üzerinden 4 portlu bir valfin kontrolünü yapmaya çalışıyorum fakat başarılı olamadım.
Aşağıdaki kodla, sadece yazılan komutun hiçbir işlem yapmadan geri dönüşünü alabiliyorum yani gönderdiğim komutu ekranda okuyorum.
Asıl programımda ise hiçbir geri dönüş olmuyor ve devreye komut gönderemiyorum.
Nerede hata yapıyorum acaba ? Yardım ederseniz çok sevinirim.
Teşekkürler.
Aşağıdaki kodla, sadece yazılan komutun hiçbir işlem yapmadan geri dönüşünü alabiliyorum yani gönderdiğim komutu ekranda okuyorum.
Kod:
#include <16f628a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)
void main (){
while(TRUE){
x=getc(h);
putch(x);
}
}
Kod:
#include <16f628a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1 ) // rx tx tanımlandı
int x ;
void main () //Ana program.
{ //Sadece çıkışları output yapacak ve devamında kesme gelene kadar hiç bir iş yapmayacak
set_tris_a(0x00);
enable_interrupts(INT_RDA);
enable_interrupts(global); //kesmeleri aç
}
#int_rda
void RDA_isr (void) //Rs 232 den data gelince program ne yaparsa yapsın işini bırakıp buraya gelecek ve alttaki kodları icra edecek
{
x=getc();
delay_ms(10); //Daha stabil bir çalışma için 10ms bekle
output_a(x); //Ve rs232den aldığı datayı a portunda dışarı atsın.
putc(x);
}
Nerede hata yapıyorum acaba ? Yardım ederseniz çok sevinirim.
Teşekkürler.