Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
版主
|
Rojer,
...........incf............temp_reg,f 該指令只有加一的動作,還是用向左轉的指令 (x2)吧!
發表於: 2005/4/12 11:24
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
資深會員
|
= =?
請問一下 你不是說有把他*2了結果還不對 怎麼現在又對了?
發表於: 2005/4/12 8:39
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
初級會員
|
感謝.........問題照著Ryang sir所說的方式,確實可以動作了,總算不用在用那一個笨方法了!
因為我是剛好設定在16階....用這一個方式才會方便啦。 如果怕它亂跳的話,其實可以這麼做 int: ...........incf............temp_reg,f ...........movlw........0x0f ;<--- ...........andwf........temp....;存在w或是F視後面所需而定 . . . .
發表於: 2005/4/12 3:58
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
版主
|
改一下程式:
RLNCF TEMP_REG,W ; 查表位址 *2 後放到 W reg. ADDWF PCL,F GOTO STEP1 GOTO STEP2 GOTO STEP3 GOTO STEP4 .
發表於: 2005/4/11 9:51
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
資深會員
|
這種情形我在查表時也遇過
使用這種方式都會連續執行兩次 後來是在某個日本網站找到解決方法 不過那是查表找字串 如果你要執行的是副程式 就要另外找方法解決了 不過我還是覺得用判斷的方法比較安全...
發表於: 2005/4/11 9:34
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
初級會員
|
step1、step3都會進去執行,但程序上不對,我是一共有8個step(0-7),但是每個step都會給我執行兩次!
另外你所提到的pc是詹次加2,但是我想在指令也是一樣佔用2個byte,當然這是我的猜測啦,我是試了很久都試不出來,現在是用很笨的方式,我從0-7去判斷,在決定要去那一段程式執行,唉.......
發表於: 2005/4/11 9:25
|
|||
|
Re: 18F使用上的問題---PCL
|
||||
---|---|---|---|---|
資深會員
|
是要查表嗎
可以來這裡看看 http://www.piclist.com/techref/microchip/memory.htm 18系列的程式計數器一次加2 所以永遠是偶數 你的TEMP_REG是否有可能會是奇數 如果會的話程式會有問題
發表於: 2005/4/11 9:16
|
|||
|
18F使用上的問題---PCL
|
||||
---|---|---|---|---|
初級會員
|
一、以前在12、16系列的MCU我們常常用這一個程式
EXAMPLE: MOVF TEMP_REG ADDWF PCL,F GOTO STEP1 GOTO STEP2 GOTO STEP3 GOTO STEP4 . . . . 可是我在18F內一直寫不出來,我也有試著把暫存器(TEMP_REG)的內容*2 ,但是結果還是不對ㄟ。我的這一段程式是寫在位置0X20的地方所以應該不會有溢位的問題,但是怎麼試都不對
發表於: 2005/4/11 8:27
|
|||
|