• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 想請問為什麼我的PCL只能送出八筆資料
#7
高級會員
高級會員


查看用戶資訊
改寫成下面請參考:

KEY_PAD_TABLE:
RLNCF RFID1
MOVLW 0X1E ;<---------
ANDWF RFID1,W
CALL TABLE
RRNCF RFID1
RETURN

同時最好要限制RFID1不要超過8,否則TABLE中
ADDWF PCL,F
指令會超出範圍產生不可預期的狀況,也可將其改成如下
TABLE:
ADDWF PCL,F
RETLW 0X39
RETLW 0X31
RETLW 0X32
RETLW 0X33
RETLW 0X34
RETLW 0X35
RETLW 0X36
RETLW 0X37
RETLW 0X38
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
RETLW 0X00 ;<-------
如此當RFID1的數值大於8時才不會失控,只是回應ㄧ個0X00

Q2:當你把TABLE放在0X0800時你要記得設定PCLATH的值為0X08,在執行ADDWF PCL,F時才會指向正確位址,修改如下請參考
KEY_PAD_TABLE:
MOVLW 0X08 ;<---------
MOVWF PCLATH ;<---------
RLNCF RFID1
MOVLW 0X1E
ANDWF RFID1,W
CALL TABLE
RRNCF RFID1
RETURN

發表於: 2009/10/14 6:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問為什麼我的PCL只能送出八筆資料
#6
中級會員
中級會員


查看用戶資訊
哈 好厲害~不過可以教我另外寫法嗎?

發表於: 2009/10/14 2:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問為什麼我的PCL只能送出八筆資料
#5
資深會員
資深會員


查看用戶資訊

發表於: 2009/10/14 1:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問為什麼我的PCL只能送出八筆資料
#4
中級會員
中級會員


查看用戶資訊
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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問為什麼我的PCL只能送出八筆資料
#3
版主
版主


查看用戶資訊
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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問為什麼我的PCL只能送出八筆資料
#2
高級會員
高級會員


查看用戶資訊
如此寫法在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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


想請問為什麼我的PCL只能送出八筆資料
#1
中級會員
中級會員


查看用戶資訊
我用18F452
想請問為什麼我的PCL只能送出八筆資料??
主要利用單一W返回應用
我試過
DT "912345678"
也是送到7就跳9了

Attach file:



gif  (0.00 KB)


發表於: 2009/10/12 21:53
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------