سلام بر همه..
بنده نمونه کدی در کدویژن برای اسکن کیپد نوشتم اما در عملکرد دچار اختلال شد و با تغییر یک سطر این مشکل برطرف شد اما علتش رو نمیدونم و میخوام از دوستان بپرسم:
این نمونه کد برنامه هست که بصورت خلاصه نوشتم و بقیه برنامه رو پاک کردم..در اینجا متغیر عمومی A یک عدد رو از خوندن صفحه کلید میگیره...
اضافه شده در تاریخ :
حالا مشکل اینجاست که اگه عبارت DDRA=0x0f رو که با فلش مشخص شده نیارم این مشکل ایجاد میشه..درواقع با اینکه در ابتدای برنامه و قبل از حلقه while چهار پین اول پورت A رو خروجی کردم اما بعد از خلقه هم لازمه که اینکارو بکنم تا برنامه بدرستی اجرا بشه.درحالی که این کار قبلا و در ابتدای برنامه انجام شده...چرا؟
بنده نمونه کدی در کدویژن برای اسکن کیپد نوشتم اما در عملکرد دچار اختلال شد و با تغییر یک سطر این مشکل برطرف شد اما علتش رو نمیدونم و میخوام از دوستان بپرسم:
این نمونه کد برنامه هست که بصورت خلاصه نوشتم و بقیه برنامه رو پاک کردم..در اینجا متغیر عمومی A یک عدد رو از خوندن صفحه کلید میگیره...
کد:
#include <mega16a.h> #include <delay.h> #define c1 PINA.4 #define c2 PINA.5 #define c3 PINA.6 #define c4 PINA.7 flash unsigned char row[]={0b11111110,0b11111101,0b11111011,0b11110111}; unsigned char A ; void main(){ unsigned char A1=0b10111111 , A2=0b10111111 , A3=0b10111111 ; unsigned char r,ac; DDRA=0x0f; <<<<<<<<<<<<<<<<<<< while(1) { A=20; for(r=0;r<4;r++){ ac=4; PORTA=row[r]; DDRA=0x0f; <<<<<<<<<<<<<<<<<<<< if(c1==0) ac=0; if(c2==0) ac=1; if(c3==0) ac=2; if(c4==0) ac=3; if(!(ac==4)){ A=(r*4)+ac; while(c1==0); while(c2==0); while(c3==0); while(c4==0);} }
اضافه شده در تاریخ :
حالا مشکل اینجاست که اگه عبارت DDRA=0x0f رو که با فلش مشخص شده نیارم این مشکل ایجاد میشه..درواقع با اینکه در ابتدای برنامه و قبل از حلقه while چهار پین اول پورت A رو خروجی کردم اما بعد از خلقه هم لازمه که اینکارو بکنم تا برنامه بدرستی اجرا بشه.درحالی که این کار قبلا و در ابتدای برنامه انجام شده...چرا؟
دیدگاه