找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 904|回复: 6
收起左侧

51单片机运行优化问题

[复制链接]
ID:773929 发表于 2024-1-17 11:38 | 显示全部楼层 |阅读模式
大佬们,使用stc32G单片机,使用的外部11.0592M晶振,使用了四个外部中断资源,使用了四个定时器中断,满负荷运行时,四个外部中断会一直中断(接的四个光电编码器),四个定时器中断基本都是延时flag变量(但延时较多,变量也较多),使用的时序模块比如D3231和oled12864,感觉运行很慢,12864该刷新的时候总会停一下,我四个定时器中断时间是两个1ms,两个2ms,目前想把外部晶振换16M(因使用场地有大型电机,晶振采用较低频率),各位大佬可不可以给点建议
回复

使用道具 举报

ID:226055 发表于 2024-1-17 12:28 | 显示全部楼层
STC32G有DMA外设,想办法把这个用起来,减轻CPU压力,看看实效性会不会提高。
回复

使用道具 举报

ID:458247 发表于 2024-1-17 13:03 | 显示全部楼层
中断里代码少写一点,其他模块有超过100us的延时,都做成分时驱动,不要用延时函数。可以的话把代码发上来,才好跟你说优化方案
回复

使用道具 举报

ID:458247 发表于 2024-1-17 13:05 | 显示全部楼层
感觉你说的这几个功能,不应该已经满负载了啊,stc32G运行速度挺快的了
回复

使用道具 举报

ID:883242 发表于 2024-1-17 13:41 | 显示全部楼层
把代码里面的delay全部去掉还卡死才需要考虑换更好的单片机。
回复

使用道具 举报

ID:879348 发表于 2024-1-17 13:49 | 显示全部楼层
你说的应用应该无压力的,应该是你的操作出现了没必要的等待
回复

使用道具 举报

ID:401564 发表于 2024-1-17 15:37 | 显示全部楼层
这个是不会有什么压力的,就算是用STC的8位单片机运行都不会有压力
12864可以用SPI读写,不需要每次都写完整个屏幕,写一个字节就退出函数,等待可以用标志位来代替delay类的死等延时
中断里面不要有太多的数据处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表