Re: 想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
中級會員
|
哈 好厲害~不過可以教我另外寫法嗎?
發表於: 2009/10/14 2:24
|
|||
|
Re: 想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
資深會員
|
發表於: 2009/10/14 1:52
|
|||
|
Re: 想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
中級會員
|
Q1:不解 ... 那目前該怎麼改呢??
KEY_PAD_TABLE RLNCF RFID1 MOVLW 0X0F ANDWF RFID1,W CALL TABLE RRNCF RFID1 RETURN TABLE ADDWF PCL,F DT "912345678" 我將 RLNCF RFID1放入 ANDWF RFID1,W之下還是不行 Q2:我將此TABLE 設為ORG 0X0800還會產生亂碼 不設反而不會 但是如果亂放會亂跳到PC處 所以目前放到程式開頭前 原因是???
發表於: 2009/10/14 1:14
|
|||
|
Re: 想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
版主
|
kunge 說的對,一般這種查表方式主要是用於PIC16 的元件上,且 PIC16 的 Program Counter 的變化量是 1 ,而 PIC18 的 PC 變化量為 2 所以你的查表索引需向左移一位後(永遠只到偶數位址) 才可以跟PCL 相加查表。且查表的起始位址最好是 0xnn00 的位址開始放表格。
對於簡單的查表是可以用此方式的,但對於較大或複雜的表格就可以考慮使用 PIC18 所提供的專用查表指令TBLRD* (Table Read) 來完成。 使用範例可以參考W400 (ASP102)的教育訓練的Lab5。 http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=25
發表於: 2009/10/13 9:33
|
|||
|
Re: 想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
高級會員
|
如此寫法在PIC16是會正確的,但因PIC18每個組合語言指令使用兩個位址空間,因此RFID已先用0X0F限制住,因此才會有如此結果,如要正常應在
ANDWF RFID1,W 後面加上乘2的指令才行,目前用RETLW是承2如使用GOTO那還要乘4才會正確
發表於: 2009/10/13 6:49
Edited by kunge on 2009年10月13日 08:08:10
|
|||
|
想請問為什麼我的PCL只能送出八筆資料
|
||||
---|---|---|---|---|
中級會員
|
我用18F452
想請問為什麼我的PCL只能送出八筆資料?? 主要利用單一W返回應用 我試過 DT "912345678" 也是送到7就跳9了 Attach file: (0.00 KB)
發表於: 2009/10/12 21:53
|
|||
|