• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   1 Anonymous Users




(1) 2 »


Re: 查表程式
#11
資深會員
資深會員


查看用戶資訊
參照:


謝謝大家及版主的回覆...
受益良多...我會深記"跨頁"這兩個字的
真是高興,現在不用在那邊搬表移來移去了
感謝幫忙!



記住 在 "老式" 的 PIC16FXXX 只有 GOTO , CALL 或 更動 PCL 時 PCLATH 會自動載入 , 其差別是 PCL 只有 8bit
而 GOTO , CALL 指令內 ADDRESS 參數 是 11 bit , 所以 GOTO 或 CALL 時 PCLATH 會省略最低 3bit , 更動 PCL 時 就不會省略最低 3bit

但 PCL 只有 8 bit 所以要查 256 BYTE 的表時 , 乖乖的在表頭前 加個 ORG 0Xxx00 的虛指令

發表於: 2009/6/17 22:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 查表程式
#10
高級會員
高級會員


查看用戶資訊
參照:

Beee 寫道:
參照:

Ryang 寫道:
這種利用 PCL 的察表示屬於較早期的 PIC16Fxxx 的查表,較新的像PIC16F87x, 87xA & 16F88x 等較新的系列已經內建 EEPROM & Flash 直接存取用的暫存器。使用這些 EEADR & EEADRH 暫存器定位址,要查到哪裡都隨你高興。


收到 已確認 !

以往都只有查小表 , 查大表 在以往論壇上都說是大麻煩 , 感謝 SHPENG 大大 的拋玉引玉 , 以後不管 新舊 CPU , 查大表 再也不會讓人頭痛了


謝謝大家及版主的回覆...
受益良多...我會深記"跨頁"這兩個字的
真是高興,現在不用在那邊搬表移來移去了
感謝幫忙!

發表於: 2009/6/15 19:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 查表程式
#9
資深會員
資深會員


查看用戶資訊
參照:

Ryang 寫道:
這種利用 PCL 的察表示屬於較早期的 PIC16Fxxx 的查表,較新的像PIC16F87x, 87xA & 16F88x 等較新的系列已經內建 EEPROM & Flash 直接存取用的暫存器。使用這些 EEADR & EEADRH 暫存器定位址,要查到哪裡都隨你高興。


收到 已確認 !

以往都只有查小表 , 查大表 在以往論壇上都說是大麻煩 , 感謝 SHPENG 大大 的拋玉引玉 , 以後不管 新舊 CPU , 查大表 再也不會讓人頭痛了

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


Re: 查表程式
#8
版主
版主


查看用戶資訊
這種利用 PCL 的察表示屬於較早期的 PIC16Fxxx 的查表,較新的像PIC16F87x, 87xA & 16F88x 等較新的系列已經內建 EEPROM & Flash 直接存取用的暫存器。使用這些 EEADR & EEADRH 暫存器定位址,要查到哪裡都隨你高興。

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


Re: 查表程式
#7
資深會員
資深會員


查看用戶資訊
參照:

shpeng 寫道:
參照:

Ryang 寫道:
建議線看一下MPASM 的教育訓練 :
http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=32

DT 是個 Marco 的指令,主要是用來定 PIC16F 的組語查表並配合 CALL & ADDWF PCL,F 的指令來使用。請先查一下 PCL只有到 8-bit 的長度,所以查表資料的最終長度為 255 且最後的位址不可跨過 0xFF ,因為 PCL 會歸零。


所以 需搭配 PCLATH 做進位處理,可以查 8K大表
http://www.piclist.com/techref/microchip/bigtable.htm


感謝無私提供 , 謝謝 .......
如果 程式空間夠大 ( 不同 CPU ) 應該不只 8K.....

如果真的是 大表 的話 , 還是乖乖的將各分表 表頭放在 0X00 才不會自找麻煩 又省事
反正 PCL 一改變 , PCLATH 自動 LOAD , 表有多大 就查多大

+++++ 一個疑問 , 如果查表的 PCL 恰恰與下一個指令的 PCL 值 同樣 , 會不會讓 CPU 以為 PCL 沒變化 而沒跳到查表程式 ?????
.
還是 只要有 ADDWF PCL , F ; MOVWF PCL 就一定會 RELOAD PCLATH , ; MOVF PCL , F ;____ ??

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


Re: 查表程式
#6
資深會員
資深會員


查看用戶資訊
參照:

Ryang 寫道:
建議線看一下MPASM 的教育訓練 :
http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=32

DT 是個 Marco 的指令,主要是用來定 PIC16F 的組語查表並配合 CALL & ADDWF PCL,F 的指令來使用。請先查一下 PCL只有到 8-bit 的長度,所以查表資料的最終長度為 255 且最後的位址不可跨過 0xFF ,因為 PCL 會歸零。


所以 需搭配 PCLATH 做進位處理,可以查 8K大表
http://www.piclist.com/techref/microchip/bigtable.htm

發表於: 2009/6/15 13:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 查表程式
#5
版主
版主


查看用戶資訊
參照:

shpeng 寫道:
參照:

hellowanz 寫道:
PIC的表不能跨頁...




PIC的表可以跨頁

movlw high (TABLE_START)
movwf pclath
movf index,w
addlw TABLE_START
skpnc
incf pclath,f
movwf pcl
TABLE_START
retlw ...

資料來源:
http://www.piclist.com/techref/microchip/tables.htm


好方法,謝謝。

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


Re: 查表程式
#4
版主
版主


查看用戶資訊
建議線看一下MPASM 的教育訓練 :
http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=32

DT 是個 Marco 的指令,主要是用來定 PIC16F 的組語查表並配合 CALL & ADDWF PCL,F 的指令來使用。請先查一下 PCL只有到 8-bit 的長度,所以查表資料的最終長度為 255 且最後的位址不可跨過 0xFF ,因為 PCL 會歸零。

發表於: 2009/6/15 13:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 查表程式
#3
資深會員
資深會員


查看用戶資訊
參照:

hellowanz 寫道:
PIC的表不能跨頁...




PIC的表可以跨頁

movlw high (TABLE_START)
movwf pclath
movf index,w
addlw TABLE_START
skpnc
incf pclath,f
movwf pcl
TABLE_START
retlw ...

資料來源:
http://www.piclist.com/techref/microchip/tables.htm

發表於: 2009/6/15 12:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 查表程式
#2
資深會員
資深會員


查看用戶資訊
PIC的表不能跨頁...

發表於: 2009/6/15 12:05
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... ]

教育訓練中心

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