سلام دوستان . من مدتیه که خودم شخصا در حال یادگیری برنامه نویسیه AVR در محیط codevision هستم . ولی متاسفانه با مشکلاتی روبرو میشم که برام قابل فهم نیستن . برای نمونه برنامه ای نوشتم که یک جور تایمره و بوسیله اینتراپت سه حالت زمانی 2،4 و 5 ساعته یک خروجی رو فعال که و این درصورتیه که یک تریگر به ورودی اعمال بشه.
ممنون میشم که به برنامه من نگاهی بندازین و ایرادهامو بگین.
در ضمن چطور میشه با برنامه ورودیه حساس به لبه نوشت بدون استفاده از اینتراپت.
ممنون
ممنون میشم که به برنامه من نگاهی بندازین و ایرادهامو بگین.
در ضمن چطور میشه با برنامه ورودیه حساس به لبه نوشت بدون استفاده از اینتراپت.
ممنون
کد:
#include <mega16.h> #include <delay.h> char Hour[3]={2,4,5}; unsigned char i; unsigned char hours; interrupt [EXT_INT0] void ext_int0_isr(void) { if(i==3) { i=0; hours=Hour[0]; } else { i++; hours=Hour[i]; } } void main(void) { unsigned char s; unsigned char m; unsigned char h; GICR|=0x40; MCUCR=0x00; MCUCSR=0x00; GIFR=0x40; DDRA=0x00; PORTA=0xFF; DDRB=0xff; PORTB=0x00; while(1); { if(!PINA.0) { PORTB.0=1; goto Zaman; } else { PORTB.0=0; } Zaman: for(h=0,h<hours,++h) { for(m=0,m<59,++m) { for(s=0,s<59,++s) { delay_ms(1000); } } PORTB.0=0; } } }
دیدگاه