完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
N76E885AT28芯片定时器问题:想知道我定义的定时器中断时间10ms 有什么问题?实际的时间是小于10ms了。
#define T0H_DEF 0xB8 #define T0L_DEF 0x00 void tiMER0_init(void)//¶¨Ê±Æ÷/¼ÆÊýÆ÷0³õʼ»¯ { TH0 = T0H_DEF; TL0 = T0L_DEF; TMOD |= 0x01; //16λ¶¨Ê±Æ÷/¼ÆÊýÆ÷ TCON |= 0x10; // TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 //¿ªÆôTR0 ET0 = 1; //´ò¿ª¶¨Ê±Æ÷0ÖжÏÔÊÐí } 频率22.118Mhz |
|
相关推荐
1个回答
|
|
|
TL0 = T0L_DEF; ET0 = 1; // ¿ªÆô¶¨Ê±¶Î TR0 = 1; // ¿ªÆô¶¨Ê±Æ÷}在N76E885AT28芯片中,T0H_DEF的初始值为0xB8,T0L_DEF的初始值为0x00,由此计算得到定时器的初值为0xFF48。根据定时器的工作方式,在定时器初值到0xFFFF之间的时钟脉冲周期数为0xFF48。若晶振频率为12MHz,则每个时钟脉冲的周期为1/12MHz = 83.33ns。如果要实现定时器中断周期为10ms,那么定时器中断的时钟周期数应该为:10ms / 83.33ns = 119998。而0xFF48到0xFFFF的周期数为52584,如果将这两个数字相加,得到的值为74582,远远小于需要的中断周期数119998。因此,实际的定时器中断周期会小于10ms。
要想实现精确的中断周期,可以考虑增加时钟脉冲的频率或者调整定时器初值。具体如何调整初值,需要根据实际情况来确定,可以参考N76E885AT28的数据手册进行调试。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1073 浏览 1 评论
1892 浏览 0 评论
1869 浏览 1 评论
3295 浏览 5 评论
3619 浏览 9 评论
1078浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1402浏览 1评论
1896浏览 0评论
1210浏览 0评论
1348浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 13:26 , Processed in 0.672841 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
503