找回密码
 立即注册
楼主: tsunami87

PCA 捕获异常,单片机执行速度变慢 | 已解决

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2023-9-28 14:58:20 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-9-29 09:35:59 | 显示全部楼层
神*** 发表于 2023-9-28 14:58
工欲善其事必先利其器 !不能靠猜
我还是问楼主老问题,你用上仿真来查你程序错误了吗 ?

哈,我也想用仿真,可就是不成功。一直提示conntion to target system lost。所以只能暂时不用仿真调了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2023-9-29 10:24:15 | 显示全部楼层
你要把你的操作一步步贴出来,上班后,我们研发看到,才能帮你
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-9-29 13:09:54 | 显示全部楼层
找到直接原因了,如图一个未使用的变量定义注释掉就正常了unsigned int ret = 0;
截图202309291259551339.jpg
根本原因还不清楚。

编译信息:
截图202309291303382678.jpg
截图202309291309355680.jpg

是不是我的编译配置有问题?


仿真的问题,之后有空我在把操作过程写下,再请教了。
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-9-30 11:20:03 | 显示全部楼层
tsuna*** 发表于 2023-9-29 13:09
找到直接原因了,如图一个未使用的变量定义注释掉就正常了unsigned int ret = 0;

根本原因还不清楚。

神奇了,昨天注释掉unsigned int ret = 0;主循环正常了。今天加了点串口输出字符串的代码,又不行了。之前就有串口输出字符串的。现在是加了两句输出而已。关闭所有串口输出,也会不正常。
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-10-3 20:16:47 | 显示全部楼层
tsuna*** 发表于 2023-9-30 11:20
神奇了,昨天注释掉unsigned int ret = 0;主循环正常了。今天加了点串口输出字符串的代码,又不行了。之 ...

在timer中断有个串口发送的过程,去除后正常了。是不是就是因为这个原因呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-10-3 23:38:26 | 显示全部楼层
tsuna*** 发表于 2023-9-28 14:39
主频是22118400,14KHZ是我在中断函数中反转gpio电平,用示波器测试到的频率。adc值没有上报,只是简单做 ...

你可以用一个IO指示你的中断执行时间:
中断函数
{
  P10 = 1;
  中断代码;
  P10 = 0;
}
示波器看P1.0的高电平时间,以及周期。
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-10-7 09:19:05 | 显示全部楼层
梁*** 发表于 2023-10-3 23:38
你可以用一个IO指示你的中断执行时间:
中断函数
{

是的,试过了,中断处理很快几个us。
现在是不确认是不是下面这个原因导致的:
“在timer中断有个串口发送的过程,去除后正常了。是不是就是因为这个原因呢?”
目前都正常了,大概率是这个原因,但不理解是怎么造成的

点评

你在timer中断里查询发送吗? 串口一定要中断收发,尽量少占用CPU时间。 4个串口都可以同时高速(115200bps)全双工通信,占CPU时间不超过20%(每个串口收发一个字节耗时2us左右@24MHz)。  详情 回复 发表于 2023-10-7 10:11
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-10-7 10:11:22 | 显示全部楼层
tsuna*** 发表于 2023-10-7 09:19
是的,试过了,中断处理很快几个us。
现在是不确认是不是下面这个原因导致的:
“在timer中断有个串口发 ...

你在timer中断里查询发送吗?
串口一定要中断收发,尽量少占用CPU时间。
4个串口都可以同时高速(115200bps)全双工通信,占CPU时间不超过20%(每个串口收发一个字节耗时2us左右@24MHz)。
回复 支持 反对

使用道具 举报 送花

1

主题

11

回帖

49

积分

新手上路

积分
49
发表于 2023-10-20 09:18:00 | 显示全部楼层
梁*** 发表于 2023-10-7 10:11
你在timer中断里查询发送吗?
串口一定要中断收发,尽量少占用CPU时间。
4个串口都可以同时高速(115200b ...

哈,是的在timer中断发送的。不过也不频繁,100ms一次,发送几十个字节。
现在去掉timer中断发送就好了。谢谢了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 15:05 , Processed in 0.165522 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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