CH549/CH548学习笔记4

阅读: 评论:0

CH549/CH548学习笔记4

CH549/CH548学习笔记4

目录

1. 时钟频率选择

2. 初始化

3. 中断


CH549/CH548和标准52内核一样,拥有T0,T1和T2三个定时器。

1. 时钟频率选择

默认的情况下,时钟频率为Fsys / 12,然后通过T2MOD配置时钟频率。

最快的时钟频率是Fsys,即bTMR_CLK = 1,bTn_CLK = 1(n = 0, 1, 2)。最慢的就是默认的时钟配置。对于48M应用,最慢的一般也够用了。

2. 初始化

以T0为例:

void timerInit(uint8_t ms)
{TMOD &= 0xF0;TMOD |= 0x01;                    //set timer0 as mode1 (16-bit)gTimerMS = (uint16_t)(65536 - FOSC / 12 / (1000 / ms));TL0 = gTimerMS;          //initial timer0 low byteTH0 = gTimerMS >> 8;   //initial timer0 high byteTR0 = 1;                        //timer0 start runningET0 = 1;                        //enable timer0 interruptEA = 1;                         //open global interrupt switch
}

TMOD的低4位配置T0,TL0和TH0设置计数时间。这里采用默认的12分频计数。

3. 中断

3个定时器的中断编号分别为1,3,5。以T0为例:

void timer0Isr() interrupt 1
{TL0 = gTimerMS;          //reload timer0 low byteTH0 = gTimerMS >> 8;   //reload timer0 high byte//Timer handle}

定时器中断中需要把TL0和TH0重新初始化以启动下次中断。

本文发布于:2024-01-29 15:05:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170651190416128.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23