مقایسه انجام نمیشه یعنی من وقتی [code=c]{ETX}A{\X80}{\XC1}[/code] وارد میکنم LED روشن میشه و بقیه کارهای میکرو متوقف میشه یعنی دیگه دیتای کلید زده شده رو نشون نمیده اما زمانی که در انتهای اون کدها disable_interrupts(INT_RDA); رو مینویسم دیتای کلیدها میاد و LED با یکبار ارسال روشن میشه و قتی STOP رو میزنم خاموش میشه و دیگه با فرستادن دیتا روشن نمیشه
البته وقتی بجای دیتا از این استفاده میکنم
[code=c]char string[4][7];
gets(string);
[/code]
فکر میکنم چون تو وقفه دریافت نوشتم.چون اگه مقایسه انجام میشد باید ارایه اشتباه که وارد میکنم چیزی روشن نشه.سورس برنامه که خدمتتون هست لطف میکنید یه نگاهی بندازید ؟
من جای شما بودم. برناممو کوچیکتر میکردم.
یعنی اول یه برنامه مینوشتم که اطلاعاتو دریافت کنه و بعد مقایسه کنه.
بعد مشکلشو میفهمیدم از کجاست.
چون زمانی که برنامه حجیم بشه، ممکنه مشکل از اون قسمتی که شما فکر میکنی نباشه
سلام
دوست عزیز من کدهای اضافی رو پاک کردم و کد رو وارد کردم وقتی data , aبرابر هستند درست کار میکنه اما وقتی رشته رو از سریال میگیرم درست کار نمیکنه
[code=c]char string[4][7];
char a[4][7]={"{ETXB}","BBBB","{\X80} ","{\XC1}"};
#int_RDA
void RDA_isr(void)
{
gets(string);
for( i=0;i<4;i++)
for(j=0;j<7;j++)
if(a[i][j] != string[i][j])
break;
دیدگاه