你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

變數在中斷跳轉後數值被改變....

[复制链接]
ias11023 提问时间:2018-4-19 15:14 /
本帖最后由 ias11023 于 2018-4-19 15:21 编辑

最近發現程式在中斷之間跳轉時原本在TIM5_CC內被設為1的變數回到SysTick_100us內該變數又回到零了....
且確認過該變數的部分只在這兩個地方有被使用到過,
那相關程式部分編寫在下面,想請教版上是否有人有發生過同樣問題,又是怎解決的

該專案使用了三個中斷設定(如下),分別為TIM1_CH4_CC, TIM5_CH4_CC, SysTick_100us_Isr,其設定如下圖
未命名4.jpg
        且專案內宣告了一個全域變數(_SysFlag)
未命名3.jpg
        那目前在程式設定為當TIM5_CH4_CC中斷觸發後會將SysFlag.PerUitlity= 1(bit宣告在上面數往下數第二個)
        而進到100us_Isr內後會將該Flag清除
      <Set Flag>
未命名2.jpg
        <Clear Flag> 未命名.jpg


        那程式在運行過程中有時會發生明明有進入到TIM5_CC中斷內,但是等從TIM5中斷內出來後回到100us內發生SysFlag.PerUtility並沒有被設立為一的狀況發生,




收藏 评论5 发布时间:2018-4-19 15:14

举报

5个回答
Cortexxx 回答时间:2018-4-21 22:36:25
喔~ 优先级问题~

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

Ricky_song 回答时间:2018-4-22 12:55:04
可能是栈溢出,栈设大一点试试

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

ias11023 回答时间:2018-4-23 11:38:01
本帖最后由 ias11023 于 2018-4-23 11:39 编辑

原本棧設定為0x800,有試過將其改為0x1000也還是一樣

ias11023 回答时间:2018-4-23 11:39:07

請問Cortexxx大說的優先級問題是指什麼意思??
是有哪邊設定有問題嗎?
smallcsduck 回答时间:2018-4-23 15:43:22
volatile 这个了解一下

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版