标题: 51单片机运行优化问题 [打印本页]

作者: 范莉萍    时间: 2024-1-17 11:38
标题: 51单片机运行优化问题
大佬们,使用stc32G单片机,使用的外部11.0592M晶振,使用了四个外部中断资源,使用了四个定时器中断,满负荷运行时,四个外部中断会一直中断(接的四个光电编码器),四个定时器中断基本都是延时flag变量(但延时较多,变量也较多),使用的时序模块比如D3231和oled12864,感觉运行很慢,12864该刷新的时候总会停一下,我四个定时器中断时间是两个1ms,两个2ms,目前想把外部晶振换16M(因使用场地有大型电机,晶振采用较低频率),各位大佬可不可以给点建议

作者: cocolala    时间: 2024-1-17 12:28
STC32G有DMA外设,想办法把这个用起来,减轻CPU压力,看看实效性会不会提高。

作者: yzw846562238    时间: 2024-1-17 13:03
中断里代码少写一点,其他模块有超过100us的延时,都做成分时驱动,不要用延时函数。可以的话把代码发上来,才好跟你说优化方案
作者: yzw846562238    时间: 2024-1-17 13:05
感觉你说的这几个功能,不应该已经满负载了啊,stc32G运行速度挺快的了
作者: Hephaestus    时间: 2024-1-17 13:41
把代码里面的delay全部去掉还卡死才需要考虑换更好的单片机。
作者: wufa1986    时间: 2024-1-17 13:49
你说的应用应该无压力的,应该是你的操作出现了没必要的等待
作者: Y_G_G    时间: 2024-1-17 15:37
这个是不会有什么压力的,就算是用STC的8位单片机运行都不会有压力
12864可以用SPI读写,不需要每次都写完整个屏幕,写一个字节就退出函数,等待可以用标志位来代替delay类的死等延时
中断里面不要有太多的数据处理




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1