سلام میخوام برنامه ای بنویسم که هر 5 دقیقه یکبار به مدت یک دقیقه LED را روشن کنه و بعد خاموش بشه و این عمل تکرار بشه ، کد زیر را نوشتم اما جواب نمیده ! مقادیر تایمر را طوری باگذاری کردم که هر 5 ثانیه یکبار سر ریز میکنه .
#include <mega8.h>
#define LED PORTD.0
unsigned int i,m=0;
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
i++;
TCNT1H=0xEC;
TCNT1L=0xEC;
}
void main(void)
{
DDRD.0=1;
TCCR1B=0x05;
TCCR1A=0x00;
TCNT1H=0xEC;
TCNT1L=0xEC;
TIMSK=0x04;
#asm("sei")
while (1);
{
if(i==12)
m++;
if(m==5)
{
LED=1;
if(m==6)
LED=0;
i=0;
m=0;
}
}
}
دیدگاه