打印
[技术问答]

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

[复制链接]
276|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 | 只看该作者
是不是用了较多的中断,而中断内代码较长?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1344

主题

3913

帖子

0

粉丝