سلام دوستان . من مدتیه که خودم شخصا در حال یادگیری برنامه نویسیه 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;
}
}
}









دیدگاه