定时器初始化函数

[复制链接]
 楼主| langgq 发表于 2022-4-10 23:54 | 显示全部楼层 |阅读模式
void init()
{
  TMOD=0x01;        //工作方式1
  TH0=0x4c;                //0x4c=(76)D  应该是赋初值    TH0=(655536-46075)/256=76.0195
  TL0=0x00;                //为什么给TL0赋0x00???
  EA=1;                        //开总中断
  ET0=1;                //开定时器0中断
  TR0=1;                //启动定时器
  counter=0;
  h=12;m=0;s=0;                //赋初值
  dispbuf[2]=10;
  dispbuf[5]=10;
}
morrisk 发表于 2022-4-10 23:56 | 显示全部楼层
lz没看错吧!定时器0方式1的有16位  肯定会给低八位赋值的啊!应该是低八位也会对256取余
 楼主| langgq 发表于 2022-4-10 23:58 | 显示全部楼层
开发板带的例程,可以编译,下到板子上,可以实现功能,没看错!
guijial511 发表于 2022-4-11 08:11 来自手机 | 显示全部楼层
想说明什么?
chuxh 发表于 2022-4-11 21:54 | 显示全部楼层
有说要那么精确吗
pengf 发表于 2022-4-11 21:57 | 显示全部楼层
你想问什么呀  没看到问题呀
chenjunt 发表于 2022-4-11 21:59 | 显示全部楼层
定时器就像秒表一样,该进位的时候就进位,而这个进位就是你设置的参数的意义。都赋值0而且模式为16位的话就是每65535进位一次。具体时间由晶振和机器周期决定。
xxrs 发表于 2022-4-11 22:01 | 显示全部楼层

655536-46075=19461=0x4C05,差5个机器周期!
 楼主| langgq 发表于 2022-4-11 22:03 | 显示全部楼层
唉,还是没有什么结果,算了,多谢大家啦
tpgf 发表于 2022-5-4 10:10 | 显示全部楼层
函数没有啥问题
drer 发表于 2022-5-4 10:22 | 显示全部楼层
楼主遇到什么问题了吗
tfqi 发表于 2022-5-4 10:30 | 显示全部楼层
这个差值楼主是如何捕捉到的呢
coshi 发表于 2022-5-4 10:39 | 显示全部楼层
多少个计时周期相差五个机器周期啊
kxsi 发表于 2022-5-4 10:46 | 显示全部楼层
应该可以接受这个误差吧
wiba 发表于 2022-5-4 10:54 | 显示全部楼层
5个机器周期是多长时间啊
Bowclad 发表于 2022-9-13 20:25 | 显示全部楼层
定时器0方式1的有16位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

932

主题

8762

帖子

1

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

932

主题

8762

帖子

1

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