标题: MCU定时器16位自动重载不需要再次赋值了吧 [打印本页]

作者: baobao125    时间: 2021-9-2 09:22
标题: MCU定时器16位自动重载不需要再次赋值了吧
定时器16位自动重载的,在进入定时中断后重新打开定时器前还有必要再次赋初值吗void Timer2Init(void)                //50微秒@11.0592MHz
{
        AUXR &=  ~(1<<4);//定时器2停止运行
        AUXR |= 0x04;                //定时器时钟1T模式
        T2L = 0xD7;                //设置定时初始值
        T2H = 0xFD;                //设置定时初始值
        IE2  |=  (1<<2);    //允许中断
        EA=1;
        AUXR |= 0x10;                //定时器2开始计时

        
        
}


void time() interrupt 12
{
        AUXR &=  ~(1<<4);
        PWMcnt++;
        if(PWMcnt>=100)
        {
                PWMcnt=0;
        }
        if(PWMcnt<PWMzkb)
        {
                PWM=1;
        }
        else PWM=0;
        T2L = 0xD7;                //设置定时初始值
        T2H = 0xFD;                //设置定时初始值
        AUXR |= 0x10;
}




作者: xuyaqi    时间: 2021-9-2 10:08
如果设置了定时器16位自动重载,就不需要再次赋值。对于传统51单片机没有16位自动重载模式,只有STC15系列单片机才增加了16位自动重载模式。
作者: Peter_Zhu11    时间: 2021-9-2 11:05
不需要的 看你设定的触发啊什么的
作者: 188610329    时间: 2021-9-2 14:57
STC的非 89,90 系列都有自动重载不需要重新设定,89,90系列的T2,也有自动重载,但是要设置一个T2RA啥的寄存器我忘了,、
作者: Y_G_G    时间: 2021-9-2 23:08
这不是几分钟就能找到答案的问题吗?发个帖子用的时间肯定要多很多
随便写一个T2定时器控制闪灯的程序,在T2中断中加一个重新加载初值代码
第一次,重新加载,烧录看一下闪灯的情况
第二次,在重载的语句前加上"//",这个应该比较简单吧?烧录看一下闪灯情况,一对比就知道了
如果没有自动加载功能的,定时器计数器的值就会是65535
有自动加载功能的,定时器计数器的值就是你设定的值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1