单片机学习小组
直播中

爱与友人

9年用户 953经验值
擅长:可编程逻辑 模拟技术 存储技术
私信 关注

ML51TC0AE,运行了一段自己编的ADC函数后,单片机就降级了是为什么?

调试程序中对延时时间变长感到疑惑,遂寻找其问题原因所在,最后发现问题是在运行了一个自己编的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-4 15:20:18
从描述来看,这个问题可能是因为编写的ADC函数中使用了延时函数,导致程序执行时间变长,超出了单片机原有的最大时钟频率,从而导致了单片机降级。

为了解决这个问题,可以尝试优化ADC函数的实现,避免使用延时函数或者减少延时时间,以确保程序可以在单片机的最大频率下正常运行。

另外,还需要注意单片机的外设使用和时钟设置,以确保程序执行稳定。建议参考官方文档和开发者社区的经验,对单片机进行合理的配置和使用。
举报

更多回帖

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