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


Browsing this Thread:   1 Anonymous Users






Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#7
新會員
新會員


查看用戶資訊
謝謝版主及各位回答
我的問題解決了!!
謝謝

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


Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#6
版主
版主


查看用戶資訊
是的如過使用一般傳統的察標方式 addwf PCL,F 的方式要注意一下表格擺放的位址,最好是從 0xnn00 為起始點,可以用 ORG 指令去設定查表得起始位址。因為就怕 PCL + W 後的值超過 255 而查錯表了。

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


Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#5
高級會員
高級會員


查看用戶資訊
SIN300:
CLRF PCLATH ;編譯過後,看*.lst檔,與查表的位址是否小於100H,是就將PCLATH設為0,若大於(等於)100H就設為1,大於200H就設為2,以此類推,注意查表位址0FF~100,1FF~200...需避開!!
MOVF COUNT,W
ADDWF PCL,F
GOTO LAB1 ;COUNT=0,PCL就指向這行
GOTO LAB2 ;COUNT=1,PCL就指向這行
.
.
.
.
至於COUNT的值就在別處加,這樣就可以GOTO你要的LAB去抓你要的值,再注意一下板主的叮嚀,應該就可以做到你要的動作!

發表於: 2009/1/12 11:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#4
版主
版主


查看用戶資訊
PIC18 的程式記憶體是用Byte來計算單位的,但每一個指令均佔 1 Word 的寬度,所以程式每次抓取的單位都是以 16-bit 為步進單位,A0 的位址線永遠為0,只會指向偶數的位址。

所以使用 addwf PCL,F 的查表就有表格最大的限制 (128) ,所以較大表格建議採用 Table Read 的方式來讀取,底下的範例自 W400 的教材,可以下載 W400 RTC 教材看一下在後面的章節。

LFSR     FSR0RAMBUFADDR    ;  設定RAM 指標
MOVLW    UPPER
(PROGMEMADDR)  ;  設定 22-bit 的程式位址
MOVWF    TBLPTRU             
;  
MOVLW    HIGH(PROGMEMADDR)   ; 
MOVWF    TBLPTRH             ;
MOVLW    LOW(PROGMEMADDR)    ; 
MOVWF    TBLPTRL             
;          
TBLRD*+                      ; 讀取目前位址的程式資料,並將指標加一
;
MOVFF    TABLATPOSTINC0    將資料取出存到 FSR0 所指到的 RAM 
                             
的位址後,FSR0加一只到下一 RAM 位址

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


Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#3
新會員
新會員


查看用戶資訊
請問這兩行指令是指?
(1)..............COUNT=0
(2)..............COUNT=1

我改了還是不行耶!
我知道必須用到PCLATH
可是我不知道怎麼使用?
第一次建表,請多多包含,謝謝各位幫忙

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


Re: PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#2
高級會員
高級會員


查看用戶資訊
改一下試試看:
SIN300:
CLRF PCLATH ;LOOK LIST
MOVF COUNT,W
ADDWF PCL,F
(1)..............COUNT=0
(2)..............COUNT=1
...
...

HH:
INCF COUNT,F
BRA SIN300

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


PIC18F4520 PCL指令計數器為什麼必須累加2才會取下一筆資料?
#1
新會員
新會員


查看用戶資訊
我要建一個150筆SIN表,可是我的PCL計數器都必須加2才會取出下一筆資料,而我共有150筆資料*2等於300,我的PCL+W不能大於255,所以我的表永遠都讀不到後面的值,請問各位高手有什麼辦法可以解決?
PCL不是加1就會讀到下一筆資料嗎?
拜託各位幫忙!

以下是我的程式碼
LIST P=18F4520
#INCLUDE<P18F4520.INC>
;-------
SINL300 EQU 0X20
SINH300 EQU 0X21
ABCDE EQU 0X22
ORG 0X00
CLRF ABCDE
BRA START1
;-------
SIN300:
ADDWF PCL,F

DT .0,.0,.0,.0,.0,.1,.1,.1,.2,.2,.3,.3,.4,.4,.5,.6,.7,.8,.8,.9,.10,.11,.13,.14,.15,.16,.17,.19,.20,.21,.23,.24,.26,.28,.29,.31,.33,.34,.36,.38,.40,.42,.44,.45,.47
DT .49,.52,.54,.56,.58,.60,.62,.64,.67,.69,.71,.73,.76,.78,.81,.83,.85,.88,.90,.93,.95,.98,.100,.102,.105,.107,.110,.112,.115,.117,.120,.123,.125,.128,.130,.133
DT .135,.138,.140,.142,.145,.147,.150,.152,.155,.157,.159,.162,.164,.167,.169,.171,.173,.176,.178,.180,.182,.184,.186,.188,.191,.193,.195,.196,.198,.200,.202,.204
DT .206,.207,.209,.211,.212,.214,.216,.217,.219,.220,.221,.223,.224,.225,.226,.227,.229,.230,.231,.232,.232,.233,.234,.235,.236,.236,.237,.237,.238,.238,.239,.239
DT .239,.240,.240,.240,.240,.240

START1:

MOVF SINL300,W,0 ;當前位置
CALL SIN300 ;取目標位置
MOVWF CCPR1L ;產生sin波
INCF ABCDE
MOVLW .150
CPFSEQ ABCDE,0
BRA HH ;否
BRA LL ;是


START2:
MOVF SINL300,W,0 ;當前位置
CALL SIN300 ;取目標位置
MOVWF CCPR1L ;產生sin波
DECF ABCDE
MOVLW .0
CPFSEQ ABCDE,0
BRA LL ;否
BRA HH ;是

HH:
INCF SINL300,F
INCF SINL300,F ;計數器累加2
BRA START1

LL:
DECF SINL300,F
DECF SINL300,F
BRA START2


END

發表於: 2009/1/9 16:59
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... ]

教育訓練中心

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