zhaosheng 发表于 2023-4-25 10:26:07

IAP15W4K58S4单片机的PCA程序模块执行很慢

程序功能:
主要用于空调红外遥控器的学习解码和红外发射。

在PCA中断服务程序里实现红外发射和红外接收,红外发射程序在Large:variables in XDATA里执行很慢,但在Small:variables in DATA里执行正常,从红外发射监视LED2灯点亮的时间长短就能直观反映出来。由于我的程序用到串口收发大数组变量,程序必须在Large:variables in XDATA里运行,所以必须解决PCA程序模块在Large:variables in XDATA里执行很慢的问题。

不知谁有这方面的技术经验?希望能得到技术大牛的指点,谢谢!

源程序:见附件



梁工 发表于 2023-4-25 23:09:20

程序太复杂,没空详细看。
但你的PCA中断以13us的间隔执行一大堆程序,这是不合理的设计,xdata访问时间会比data稍长,你的时间很临界,所以时间稍长就忙不过来了。
这么短的时间,中断程序一定要尽量简洁,如果仍然无法按时执行完毕,则将主频提高到24MHz看看。

红外收发本来是一个简单程序,整复杂了反而不好。

神农鼎 发表于 2023-4-25 23:42:02



附件是老STC15实验箱的配套演示程序


zhaosheng 发表于 2023-4-28 09:35:14

谢谢神农鼎回复,谢谢!
页: [1]
查看完整版本: IAP15W4K58S4单片机的PCA程序模块执行很慢