سلام.من در فرستنده یک رشته 4 حرفی که حرف اول آن s به معنی شروع و حرف آخر آن p به معنی پایان است و دو حرف وسط دیتای اصلی است را می فرستم. مثلا seep یا sedp یا sdup. حالا در گیرنده وقفه را فعال کردم و کد زیر را نوشتم:
اما مشکلی وجود دارد که نمی دانم علتش چیست و آن این است که در LCD یک کلمه 6 حرفی نمایش میدهد(به جای 4 حرفی) مثلا sedpep یا sudpep که 4 حرف اول را به درستی و دقیقا مطابق دیتای ارسالی نمایش می دهد اما آن 2 حرف آخر را نمیدانم چیست و از کجا آمده.
ممنون می شوم راهنمایی کنید.
کد:
char matn[4];
int i;
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
matn[i]=data;
i++;
if(data=='p')
{
i=0;
lcd_clear();
lcd_puts(matn );
}
ممنون می شوم راهنمایی کنید.




دیدگاه