完善资料让更多小伙伴认识你,还能领取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的数据手册进行调试。 |
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1073浏览 3评论
195浏览 2评论
457浏览 2评论
370浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 07:24 , Processed in 1.238339 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号