完善资料让更多小伙伴认识你,还能领取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的数据手册进行调试。 |
|
|
|
只有小组成员才能发言,加入小组>>
897 浏览 1 评论
2295 浏览 5 评论
2605 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2415 浏览 6 评论
2317 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
463浏览 9评论
473浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
577浏览 6评论
454浏览 5评论
488浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 04:02 , Processed in 1.091621 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号