完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用aduc7026写了简单的timer1中断方波发生程序,发现频率最高只能达到120+k,定时器设的时间再短后频率不上升。附件中是整体的工程文件。
设置的使用系统时钟41.78M,不分频。T1不分频。 理论上中断程序使用了7条语句左右,debug下发现经过了18条左右指令,如果一条指令需要一个机器周期(41.78mps)完成,即不到0.5us的时间。方波最快可以达到1MHz的频率。但经过实验发现最快速度大约在130kHz左右,将T1LD改小后并没有响应的输出。 运算速度与系统时钟相差了约7,8倍。 使用的是7026开发板,外部晶振32k。 请问是硬件配置上设置错误,还是芯片的处理速度达不到这么快?谢谢! |
|
相关推荐
1个回答
|
|
有几个可能的原因导致你无法达到较高的频率:
1. 计时器的精度限制:ADuC7026的定时器是一个16位的计时器,最大计时值为65535。如果你设置的T1LD值比这个要大,那么计时器的周期将比你预期的要长。 2. 中断处理的延迟:即使中断程序只有几条指令,也需要一些时间来处理中断请求并跳转到中断处理程序。这个延迟会影响到你计算的实际频率。 3. 系统时钟的影响:如果系统时钟的频率不准确或稳定性差,那么计时器的精度也会受到影响。 4. 外部晶振的限制:ADuC7026开发板上的外部晶振频率是32kHz,这限制了计时器的最高精度和频率。 为了提高频率,你可以尝试以下方法: 1. 调整T1LD值:根据你期望的最大频率,计算出合适的T1LD值,使得定时器能够达到期望的频率。 2. 优化中断处理程序:查看你的中断处理程序是否可以进一步优化,减少处理时间。 3. 使用更精确的时钟源:如果你的开发板支持,可以尝试使用一个更准确和稳定的时钟源,如外部晶振或者外部时钟信号。 4. 使用更高性能的器件:如果你的应用需要更高的频率,可能需要考虑使用更高性能的器件,如高速微控制器或FPGA。 另外,还建议你仔细检查硬件配置是否正确,特别是与计时器和时钟相关的设置。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
938 浏览 0 评论
553 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1105 浏览 0 评论
STM32系列单片机可以让自己的GPIO去控制自己的RESET吗?有什么风险?可以规避吗?
1470 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口参数设置
895 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11587 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 14:05 , Processed in 0.516427 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号