当前位置:首页 > 单片机 > 单片机
[导读]以下为定时器的查询工作方式,不会发生中断请求:#include int main(void){//8位定时器时间计算 T=(256-初值) * 脉冲周期int i;TCNT0 = 55;//设置初值TCCR0 |= (1

以下为定时器的查询工作方式,不会发生中断请求:

#include

int main(void)
{
//8位定时器时间计算 T=(256-初值) * 脉冲周期

int i;

TCNT0 = 55;//设置初值
TCCR0 |= (1 << CS01);//8分频

for (i = 0; i < 10000; i++)
{
while(!(TIFR & TOV0));//对T/C0溢出标志进行判断,溢出后自动清零,不发生中断.
}
}

以下工作方式,会发生溢出中断请求:

#include
#include

volatile unsigned int i = 0;//注意,必须有volatile

int main(void)
{
//8位定时器时间计算 T=(256-初值) * 脉冲周期

TCNT0 = 55;//设置TC0初值
TIMSK |= (1 << TOIE0)//TC0溢出中断使能

sei();//全局中断使能
TCCR0 |= (1 << CS01);//8分频,启动定时器

while(1);
}

SIGNAL (SIG_OVERFLOW0)//TC0溢出中断服务程序
{
TCNT0 = 55;//重设TC0初值
i++;
if (cnt >= 1000)
{

}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭