找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1159|回复: 11
打印 上一主题 下一主题
收起左侧

单片机C语言时间中断函数是否需要重新赋值?

[复制链接]
跳转到指定楼层
楼主
ID:343102 发表于 2023-8-26 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上看到很多程序即使初始化时已经设置为自动重装,但是时间中断函数里仍然有重新赋值语句,例如:
void Time0() interrupt 1
{
    TH0  = (65535-15000)/256;   //重新赋值语句
    TL0  = (65535-15000)%256; //重新赋值语句
    if(++tc0 == 10)
    {
         tc0 = 0;
        P0 = _crol_(P0,1);
    }
}
但是STC官网给出的一个例程却没有重新赋值语句:
void timer0_int (void) interrupt TIMER0_VECTOR
{
   P17 = ~P17;
}
不知什么原因。
在高速运算时多两个语句耗时很明显。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-8-26 16:08 | 只看该作者
标准8051没有赋值语句等于赋值0xffff。

扩展型8051要自己去查手册里面对应的peripheral。
回复

使用道具 举报

板凳
ID:1073939 发表于 2023-8-26 17:22 | 只看该作者
标准8051的T0不支持16位自动重装,要在中断函数里重新赋值。
STC也有很多型号是不支持自动重装的,你要核对下。
回复

使用道具 举报

地板
ID:57657 发表于 2023-8-26 17:30 | 只看该作者
开启自动重装溢出后自动装入初值,不需要重新赋值,否则从0开始计数。
回复

使用道具 举报

5#
ID:69038 发表于 2023-8-26 17:45 | 只看该作者
“自动重装”,了解一下。
回复

使用道具 举报

6#
ID:883242 发表于 2023-8-26 19:13 | 只看该作者
npn 发表于 2023-8-26 17:30
开启自动重装溢出后自动装入初值,不需要重新赋值,否则从0开始计数。

标准51自动重装载模式只有8位,楼主代码显然说明了不是。
回复

使用道具 举报

7#
ID:57657 发表于 2023-8-26 22:07 | 只看该作者
ydatou 发表于 2023-8-26 17:22
标准8051的T0不支持16位自动重装,要在中断函数里重新赋值。
STC也有很多型号是不支持自动重装的,你要核 ...

TMOD寄存器结构有区别, 有16位自动重装就没有13位模式,具体见数据手册。
回复

使用道具 举报

8#
ID:230500 发表于 2023-8-27 10:34 | 只看该作者
根据单片机型号使用,一般为了程序的移植和兼容性, 都会使用常规51的方式,就是在中断里面重新装载赋值, 而STC的个别型号具有16位自动重装模式了;具体可以打开STC的ISP软件 定时器小工具里面有选项可以查看!
回复

使用道具 举报

9#
ID:123289 发表于 2023-8-28 10:24 | 只看该作者
记住:计时必须有起点和终点!!
这里:定时器中的终点是固定的(0000H),自然必须在固定起点!
以上适用于所有定时的东东。
所谓自动重装:也就是每将计时到终点后,重新固定起点。也就不需要你再费心了。
当然,遇到个多心的人,不放心【别人】的重装,自己再装一遍,那是他有钱、高兴,有钱就是任性。

其实,所有定时、计数类的东东,如PWM,捕捉……,都是围绕起点,终点的设置做文章,而产生各种各样的说教。希望楼主自悟一下。
回复

使用道具 举报

10#
ID:1034262 发表于 2023-8-28 10:51 | 只看该作者
标准51的Timer0、Timer1支持8位自动重装,但16位要手动重装。Timer2支持16位自动重装。
STC15系列、STC8系列、STC32系列的MCU,都支持16位自动重装,1T模式,超好用,用过很多了。
回复

使用道具 举报

11#
ID:343102 发表于 2023-8-28 12:39 | 只看该作者
谢谢各位回复。
回复

使用道具 举报

12#
ID:1040201 发表于 2023-8-28 16:10 | 只看该作者
看一下规格书自动重装载的就不用重新赋值了 ,不然就得手动
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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