CCS de rs232'den veri almak istiyorum fakat kullandığım iki farklı yöntemle de bunu başaramadım. Önce receive interrupt kullandım. Fakat olmadı Kbhit() ilede bunu alamadım.
rs232 de baud rate ayarınıda düzgün yaptım;
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)
gelen veriyi alma kısmı ise şu ;
if (kbhit())
{
a=getc();
i++;
printf(lcd_putc,"%c",a);
}
if(FERR);
{
CREN=0;
CREN=1;
gecici=rcreg;
}
if(OERR)
{
CREN=0;
CREN=1;
}
cren ferr ve oerr tanımlamalarını daha önceden (programın başında) tanımlamıştım. Yardım edebilirseniz sevinirim. Teşekkürler.
main()
{
cenable_interrupts(int_rda);
cenable_interrupts(global);
while(1)
{
ssssssssssssss;
ddddddddddddd;
}
}
#int_rda
receive()
{
int8 data;
data=getc();
}
Alıntı yapılan: "anafor"
if (kbhit())
{
a=getc();
i++;
printf(lcd_putc,"%c",a);
}
yukarıdaki kodda önce a
ye gelen veriyi aktarmışsınız fakat gösterirken i yi bir arttırmışsınız böylelikle gelen veriyi değil bellekte bi sonraki adreste bulunan veriyi göstermişsiniz.
direk almayı denemiyorsundur umarım RS232 (9V,-9V)(0,1) den TTL (5V,0V) (1,0) voltaj seviyesine düşürmen gerekli ayrıca RS232 de negatif logic kullanılıyor bunun için sanırım MAX232 diye bir entegre var ama emin değilim