變數在中斷跳轉後數值被改變....
本帖最后由 ias11023 于 2018-4-19 15:21 编辑最近發現程式在中斷之間跳轉時原本在TIM5_CC內被設為1的變數回到SysTick_100us內該變數又回到零了....且確認過該變數的部分只在這兩個地方有被使用到過,那相關程式部分編寫在下面,想請教版上是否有人有發生過同樣問題,又是怎解決的
該專案使用了三個中斷設定(如下),分別為TIM1_CH4_CC, TIM5_CH4_CC, SysTick_100us_Isr,其設定如下圖 且專案內宣告了一個全域變數(_SysFlag) 那目前在程式設定為當TIM5_CH4_CC中斷觸發後會將SysFlag.PerUitlity= 1(該bit宣告在上面數往下數第二個), 而進到100us_Isr內後會將該Flag清除 <Set Flag> <Clear Flag>
那程式在運行過程中有時會發生明明有進入到TIM5_CC中斷內,但是等從TIM5中斷內出來後回到100us內發生SysFlag.PerUtility並沒有被設立為一的狀況發生,
喔~ 优先级问题~ 可能是栈溢出,栈设大一点试试 本帖最后由 ias11023 于 2018-4-23 11:39 编辑
原本棧設定為0x800,有試過將其改為0x1000也還是一樣:L
Cortexxx 发表于 2018-4-21 22:36
喔~ 优先级问题~
請問Cortexxx大說的優先級問題是指什麼意思??
是有哪邊設定有問題嗎? volatile 这个了解一下
页:
[1]