Re: [問題] Microchip PIC18 ASM 疑問

作者: drag (京都念慈庵,賈詡念費翔)   2016-06-07 17:12:32
※ 引述《wasidada (dada)》之銘言:
: 最近因為工作需要開始要碰觸 PIC18系列的ASM
: 在判斷式這邊搞不懂 無論我的累加器設定多少 總是會執行Action_1和Action_2
: 請問有誰可以幫忙指點一下是哪一邊有打錯
: 謝謝
我也剛好要接觸PIC18
1. 不知道這樣會不會比較好? 我猜是主程序結束端沒有擋一下,繼續跑下去
我另外好奇你有試過>25的值嗎?例如說30,
也許只會執行Act1但後面可能會掛掉,或是一直執行無法返回
MOVLW 000h
MOVWF TRISD
MOVLW .23
CPFSGT .20
call Action_1
CPFSGT .25
call Action_2
goto Finish
Action_1:
BCF LATD,5
return
Action_2:
BCF LATD,6
return
Finish
END
2. 另外,PIC的世界裡,好像label不用冒號,
不確定是否為真,可能要麻煩你試一下
3. 剛才又查了一下CPFSGT,他的下兩行是關聯的,照你的原code邏輯
大概是這樣
CPFSGT .20
call Action_1 (不成立,PC從此行開始跑,等等return回來繼續下一行)
CPFSGT .25 (成立,PC跳過上一行,從這行開始)
call Action_2
Action_1
..........
或這樣
CPFSGT .20
call Action_1
CPFSGT .25
call Action_2 (不成立,PC從此行開始跑,等等回來會繼續下一行...=,=;;)
Action_1 (成立,PC跳過上一行,從這行開始...遇到return可能會挫起來~)
BCF LATD,5
return
結果
Value: 19, A1 A2都會做
23, A2 A1都會做
30, A1 做完,可能掛掉或是PC不知道跑哪去了
參考資料:
http://goo.gl/1K0zJj

Links booklink

Contact Us: admin [ a t ] ucptt.com