我的定时器0中断为什么只能执行一次?

[复制链接]
2942|3
 楼主| rezire199847 发表于 2011-4-16 12:06 | 显示全部楼层 |阅读模式
int n=0;
//定时器0的中断工作内容
void Timer0() interrupt 1 using 1
{
    TR0=0;
    TL0 = 0xf0;
    TH0 = 0xff;
    AD_calculate();
    Kalman_Filter(acceler,gyro);
    PWM_calculate();
    PWM_motors(R_motor,L_motor);
    n++;
    TR0 = 1;
}

----------------------------------------------------
最后发现n一直是1啊
ye460398672 发表于 2011-4-16 15:49 | 显示全部楼层
那要到调用的函数里面去找问题了哦!
ye460398672 发表于 2011-4-16 15:50 | 显示全部楼层
那要到调用的函数里面去找问题了哦!
kakasha 发表于 2011-4-16 16:37 | 显示全部楼层
你的TMOD是方式2(8位自动重装)吗?,是的话,那肯定只能执行一次啊,第一次的时候,TL0=0XF0,等TL0=0xff溢出时候,会自动将TH0=0XFF装入TL0,这时候TL0=0XFF,定时0秒?只有第一次定时了(0XFF-0XF0)us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

60

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部