找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3454|回复: 4
收起左侧

MCU定时器16位自动重载不需要再次赋值了吧

[复制链接]
ID:960619 发表于 2021-9-2 09:22 | 显示全部楼层 |阅读模式
定时器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;
}



回复

使用道具 举报

ID:94031 发表于 2021-9-2 10:08 | 显示全部楼层
如果设置了定时器16位自动重载,就不需要再次赋值。对于传统51单片机没有16位自动重载模式,只有STC15系列单片机才增加了16位自动重载模式。
回复

使用道具 举报

ID:962962 发表于 2021-9-2 11:05 | 显示全部楼层
不需要的 看你设定的触发啊什么的
回复

使用道具 举报

ID:624769 发表于 2021-9-2 14:57 | 显示全部楼层
STC的非 89,90 系列都有自动重载不需要重新设定,89,90系列的T2,也有自动重载,但是要设置一个T2RA啥的寄存器我忘了,、
回复

使用道具 举报

ID:401564 发表于 2021-9-2 23:08 | 显示全部楼层
这不是几分钟就能找到答案的问题吗?发个帖子用的时间肯定要多很多
随便写一个T2定时器控制闪灯的程序,在T2中断中加一个重新加载初值代码
第一次,重新加载,烧录看一下闪灯的情况
第二次,在重载的语句前加上"//",这个应该比较简单吧?烧录看一下闪灯情况,一对比就知道了
如果没有自动加载功能的,定时器计数器的值就会是65535
有自动加载功能的,定时器计数器的值就是你设定的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表