سلام دوستان برنامه ساده ای که در زیر میبینید به این صورت باید عمل کند که 8 تا led هست از شماره 0 تا 7 به ترتیب روشن میشه و در صورت برعکس شدن پین بی 0 از همون led که روشن بوده برعکس حرکت کنه نکتش همینه :angry:حالا یه باگ کوچیکی داره این که در حالت حرکت از صفر تا هفت اگر یه دور بزنه بار دوم دیگه led اول روشن نمیشه
لطفا توجه کنید منطق باید همینطور باشه یعنی میدونم میشه به روش های دیگه درستش کرد
حالا یه نگاهی بکنید به این چهار تا خط ببینید جریانش چیه :
لطفا توجه کنید منطق باید همینطور باشه یعنی میدونم میشه به روش های دیگه درستش کرد
حالا یه نگاهی بکنید به این چهار تا خط ببینید جریانش چیه :
کد:
#include <mega16.h> #include <delay.h> unsigned int i; void main(void) { i=1; DDRA=0XFF; while(1) { if (PINB.0==1) { for (i=i;i<256;i=i*2) { PORTA=i; delay_ms (1000); if(i==128) i=1; if (PINB.0==0){ break; } }; } else { for (i=i;i>0;i=i/2) { PORTA=i; delay_ms (1000); if(i==1) i=256; if (PINB.0==1) break; }; }; } }
دیدگاه