OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5006|回复: 17

变量操作

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
发表于 2018-3-13 17:11:02 | 显示全部楼层 |阅读模式
1金钱
一个全局量比如a;
高频率中断一直在改变a的值(几乎一两毫秒就中断),另一处使用b=a;if(b==a){程序代码};出现程序跑飞。请问怎样解决

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
 楼主| 发表于 2018-3-13 17:16:27 | 显示全部楼层
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5141
金钱
5141
注册时间
2014-8-26
在线时间
1317 小时
发表于 2018-3-13 17:30:24 | 显示全部楼层
帮顶,debug看一下
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
 楼主| 发表于 2018-3-13 17:42:26 | 显示全部楼层
login_FAE 发表于 2018-3-13 17:30
帮顶,debug看一下

debug了,没找到原因
回复

使用道具 举报

7

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2016-10-21
在线时间
43 小时
发表于 2018-3-13 18:48:07 | 显示全部楼层
请用volatile修饰变量。
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2018-3-13 19:07:27 | 显示全部楼层
ldskendy 发表于 2018-3-13 18:48
请用volatile修饰变量。

同上就可以解决你的问题,随便去了解下这个C语言关键字的作用
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10882
金钱
10882
注册时间
2014-6-12
在线时间
1039 小时
发表于 2018-3-13 19:34:54 | 显示全部楼层
高频率中断一直在改变a的值,说明cpu基本就没时间处理中断外的事务,要彻底解决问题,需要考虑用另外的硬件来处理高频率中断缓解主cpu的负担。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
 楼主| 发表于 2018-3-13 19:55:42 | 显示全部楼层
ldskendy 发表于 2018-3-13 18:48
请用volatile修饰变量。

不是小白,早已经修饰。这俩都需要修饰,我只修饰了其中一个。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
 楼主| 发表于 2018-3-13 20:29:52 | 显示全部楼层
xuyaqi 发表于 2018-3-13 19:34
高频率中断一直在改变a的值,说明cpu基本就没时间处理中断外的事务,要彻底解决问题,需要考虑用另外的硬件 ...

大哥高频率不代表没时间,CUP跑的比高铁快
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10882
金钱
10882
注册时间
2014-6-12
在线时间
1039 小时
发表于 2018-3-13 20:40:21 | 显示全部楼层
一本书 发表于 2018-3-13 20:29
大哥高频率不代表没时间,CUP跑的比高铁快

出现程序跑飞,就是时间不够用。
回复

使用道具 举报

33

主题

215

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2035
金钱
2035
注册时间
2017-12-11
在线时间
454 小时
发表于 2018-3-13 20:57:12 | 显示全部楼层
楼主的问题抽象如下:
有一个变量a,频率很快,程序跑飞,请问怎么解决?

总结:若非高人,谁能会猜?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-14 01:12:54 | 显示全部楼层
一本书 发表于 2018-3-13 19:55
不是小白,早已经修饰。这俩都需要修饰,我只修饰了其中一个。

解决了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-19
在线时间
2 小时
 楼主| 发表于 2018-3-16 08:29:52 | 显示全部楼层

没有呢,还有个问题请教,现在工程的uCos滴答定时器没有进行优先级配置,且有个定时器其优先级配置为0,0。这会影响到系统的正常运行么
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2018-3-16 08:52:50 | 显示全部楼层
改变这个值,你程序也不会跑飞,而且你这1-2ms 中断 相对STM32来说,也不是高频率中断,我程序中 20us中断改变这个值也没有问题
1-1
回复

使用道具 举报

0

主题

207

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2017-5-27
在线时间
108 小时
发表于 2018-3-16 09:07:17 | 显示全部楼层
变量加 voliatie
回复

使用道具 举报

0

主题

207

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2017-5-27
在线时间
108 小时
发表于 2018-3-16 09:09:01 | 显示全部楼层

另外请贴代码,靠猜不好解答问题
回复

使用道具 举报

7

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2016-10-21
在线时间
43 小时
发表于 2018-3-22 19:50:17 | 显示全部楼层
xuyaqi 发表于 2018-3-13 20:40
出现程序跑飞,就是时间不够用。

会不会中断出不来,就是中断一退出,然后又进去了。
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10882
金钱
10882
注册时间
2014-6-12
在线时间
1039 小时
发表于 2018-3-22 20:54:30 | 显示全部楼层
ldskendy 发表于 2018-3-22 19:50
会不会中断出不来,就是中断一退出,然后又进去了。

就是还没有处理完其他任务,你的高频率中断又来了,程序不就跑飞了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 00:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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