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

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

[复制链接]
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

查看全部评分

song19881218 回答时间: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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版