Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
版主
|
C_H_M 大大,
謝謝你的提醒,真的有給他忘記了 movlw hight Table_Index 這個設定較高5-bit的動作了。
發表於: 2008/5/6 15:49
|
|||
|
Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
新會員
|
我剛剛試了一下,還是一樣,不管是data還是程式,只要超過
100H,執行到那行就會自動回到000H的位址(RESET),是否 在ICD2上還有什麼要設定的地方.
發表於: 2008/5/5 18:00
|
|||
|
Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
版主
|
;-----------------------------------------------------------------
ORG 400H ; 改一下這裡吧! TABLE ADDWF PCL,F RETLW 0X0D ;1 RETLW 0X5C
發表於: 2008/5/5 16:10
|
|||
|
Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
新會員
|
pclath那邊是多打的,已經刪掉了,附上完整程式,很奇怪就是只
要寫超過0X100H就會自動RESET,還是有哪些地方設定要注意, 謝謝
#include p16f877.inc
發表於: 2008/5/5 14:54
|
|||
|
Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
資深會員
|
call table 前,你沒事幹麻改 pclath 的資料?
發表於: 2008/5/5 8:36
|
|||
|
Re: PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
版主
|
1. PCLATH 沒有設定成正確的 PAGE,在 CALL TABLE 前加入 PAGESEL TABLE
2. 前段的程式是否有蓋掉 0x100 的位置,檢查一下程式的分配,看看 Table 是否還存在。看 lst 檔。 3. Watch-dog 關了沒? 其實用軟體模擬 debug 一下,很快就可以找到問題的。
發表於: 2008/5/5 8:20
|
|||
|
PIC16F877 DEBUG問題
|
||||
---|---|---|---|---|
新會員
|
我使用ICD2模擬器,單晶片是16F877A,使用組合語言,當我程式
寫超過 0XFF 時,執行到 0X100之後的程式便會自動RESET,我 看DATASHEET上PIC16F877的PAGE0是0X005H~0X7FFH, 為何會出現這樣的問題?程式片段如下,當我執行到 CALL TABLE 時就會自動RESET ;----------------------------------------------------------------- RF_CFIG MOVF DPTR,0 BCF PCLATH,4 BSF PCLATH,3 CALL TABLE CALL SPI_OUT INCF DPTR,1 DECFSZ CON_CONT GOTO RF_CFIG BSF PORTC,CSM ;----------------------------------------------------------------- ORG 100H TABLE ADDWF PCL,F RETLW 0X0D ;1 RETLW 0X5C RETLW 0X0E ;2 RETLW 0X4E RETLW 0X0F ;3 RETLW 0XC5 RETLW 0X0B ;4 RETLW 0X08 RETLW 0X0C ;5 RETLW 0X00 RETLW 0X10 ;6 RETLW 0X86 RETLW 0X11 ;7 RETLW 0X83 RETLW 0X12 ;8 RETLW 0X03 RETLW 0X13 ;9 RETLW 0X43 RETLW 0X14 ;10 RETLW 0X3B RETLW 0X0A ;11 RETLW 0X00 RETLW 0X15 ;12 RETLW 0X44 RETLW 0X22 ;13 RETLW 0X10 RETLW 0X21 ;14 RETLW 0X56 RETLW 0X18 ;15 RETLW 0X08 RETLW 0X19 ;16 RETLW 0X16 RETLW 0X1A ;17 RETLW 0X6C RETLW 0X1B ;18 RETLW 0X03 RETLW 0X1C ;19 RETLW 0X40 RETLW 0X1D ;20 RETLW 0X91 RETLW 0X23 ;21 RETLW 0XA9 RETLW 0X24 ;22 RETLW 0X0A RETLW 0X25 ;23 RETLW 0X00 RETLW 0X26 ;24 RETLW 0X11 RETLW 0X29 ;25 RETLW 0X59 RETLW 0X2C ;26 RETLW 0X81 RETLW 0X2D ;27 RETLW 0X35 RETLW 0X2E ;28 RETLW 0X0B RETLW 0X08 ;29 RETLW 0X04 RETLW 0X07 ;30 RETLW 0X04 RETLW 0X02 ;31 RETLW 0X06 RETLW 0X00 ;32 RETLW 0X1B RETLW 0X09 ;33 RETLW 0X00 RETLW 0X06 ;34 RETLW 0X1E END
發表於: 2008/5/5 0:43
|
|||
|