[技术问答] ML51TC0AE,运行了一段自己编的ADC函数后,单片机好像降级成12T运行模式了。延时函数时间增

[复制链接]
493|2
 楼主| cr315 发表于 2023-6-26 09:00 | 显示全部楼层 |阅读模式
调试程序中对延时时间变长感到疑惑,遂寻找其问题原因所在,最后发现问题是在运行了一个自己编的ADC函数后出现的。我把该函数定义放在官方BSP文件中的ADC.C中,并在adc.h中也有声明。并非系统时钟变慢,我特意添加了一段函数测试异常过程中CLKO输出仍为24MHz。又特意编了个while(1)函数测试IO口输出方波频率,改变while(1)函数中内容,正常和异常时IO口输出频率之比不尽相同,有异常是IO口方波频率是正常时的5倍的,有比率是5.5倍的,正符合12T单片机和1T单片机(当然也不是所有指令都是1T)同频处理指令速度之比。请问这个是新唐ML51系列单片机的BUG吗?
奔跑的牛 发表于 2023-6-27 10:41 | 显示全部楼层
ML51没有降时钟功能,你遇到的问题,我怀疑是在不停执行某个中断,打断了while(1)中的代码执行。

你可以这样验证一下,把Timer中断优先级配置为最高,在Timer中断里反转GPIO 看脉宽。
玛尼玛尼哄 发表于 2023-6-30 21:19 | 显示全部楼层
是不是用了较多的中断,而中断内代码较长?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1466

主题

4964

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部