完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大佬帮忙看一下,为什么逻辑分析仪的P24产生的脉冲频率不对(按道理应该产生频率1KHz,逻辑分析仪出来脉冲频率是48Hz),而且不管怎么修改定时器初值,中断的时间都没有变化,Xtal(MHz):12.0已填,Debug里面Use Simulator和Limit Speed to Real-Time也勾选了。烦请大佬帮忙看一下问题出在哪里。 #include <stc15.h> void Timer0_Init() //100微秒@12.000MHz void Timer0_ISR() interrupt 1 void main() 按道理应该产生频率1KHz,占空比50%,逻辑分析仪出来的占空比是对的,但脉冲频率是48Hz。 |
|
相关推荐
1个回答
|
|
根据你提供的代码,可能存在以下几个问题:
1. 定时器的时钟源设置错误:你的代码中没有设置定时器的时钟源,因此默认使用的是内部时钟源。如果你的晶振频率为12MHz,则需要将定时器的时钟源设置为外部时钟源,代码如下: ``` AUXR |= 0x80; // 设置定时器时钟为1T模式,即外部时钟源 ``` 2. 定时器的计时精度不够:根据你提供的定时器初值 TL0 = 0x9C 和 TH0 = 0xFF,计算得到定时器的初值为 0xFF9C,转换成十进制为 65468,而不是 10000。因此,你的定时器的计时精度不足以达到 1ms 的要求。你可以根据实际需求,调整定时器的初值和时钟源,以达到所需的计时精度。 3. 中断的使能设置错误:你的代码中没有使能定时器中断。你需要将 `ET0 = 1;` 放在正确的位置,例如放在 `AUXR |= 0x80;` 之后。 综上所述,你可以尝试修改上述问题,并重新测试你的程序。 |
|
2 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:55 , Processed in 0.575975 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号