单片机学习小组
直播中

洒下墨色

9年用户 911经验值
擅长:可编程逻辑 嵌入式技术
私信 关注

ML51TC0AE运行一段自己编的ADC函数后,单片机变成12T运行模式了延时时间长到7倍是为什么?

    调试程序中对延时时间变长感到疑惑,遂寻找其问题原因所在,最后发现问题是在运行了一个自己编的ADC函数后出现的。我把该函数定义放在官方BSP文件中的ADC.C中,并在adc.h中也有声明。并非系统时钟变慢,我特意添加了一段函数测试异常过程中CLKO输出仍为24MHz。又特意编了个while(1)函数测试IO口输出方波频率,改变while(1)函数中内容,正常和异常时IO口输出频率之比不尽相同,有异常是IO口方波频率是正常时的5倍的,有比率是5.5倍的,正符合12T单片机和1T单片机(当然也不是所有指令都是1T)同频处理指令速度之比。请问这个是新唐ML51系列单片机的BUG吗?

回帖(1)

石胜厚

2024-1-12 13:42:11
可能是ADC函数代码中使用了大量的延时操作,导致程序执行时间变长,进而影响了整个程序的运行速度。建议检查ADC函数中的延时操作是否需要优化,并且注意避免在主程序中进行太多的延时操作,以免影响整个系统的运行速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分