Re: 30f2010燒入後,程式無法正常執行
|
||||
---|---|---|---|---|
版主
|
你的問題公司的同事 林建益及何仁杰 分別用 ICD2 測試30F2010 的都可以debug及個別燒錄單獨執行。
可否打電話到 Microchip 0800-717-718 來討論你的問題。
發表於: 2004/10/1 14:51
|
|||
|
Re: 請教關於C30v1.10與C30 v1.20.02.01 的問題?
|
||||
---|---|---|---|---|
版主
|
在安裝 C30 v1.20.02 的版本會檢查之前是否已安裝了正式版的 C30 C compiler ,如以安裝過正式版就不會再問 KEY Code , 所以沒有天數的限制。除非你之前就沒有輸入KEY Code, 那就會被限制在60天的使用期限。
發表於: 2004/9/30 17:51
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
版主
|
有關此詳細說明可參考右邊的"教材及講義"項內的 MPASM workshop 的說明
發表於: 2004/9/30 9:45
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
版主
|
標準的寫法如下:
movlw (high) Sub_Call ; 抓出副程式的MSB的程式位址 movwf PCLATH ; 設定 PCLATH<3:4>的 Page call Sub_Call or goto Sub_Call 比較簡單的寫法可使用MPASM所提供的虛指令如下方式: pagesel Sub_Call ; 使用虛指令自動設定跳躍PAGE的設定 call Sub_Call or call Sub_Call
發表於: 2004/9/30 9:31
|
|||
|
Re: 請教各位 用C的語法如何寫BANK及PAGE的切換??
|
||||
---|---|---|---|---|
版主
|
不知要如何正確回答你的問題;
Hi-Tech PICC 的話,可用 BANK0,BANK1-3 的保留字來指定某一特定變數在RAM BANK的位址,詳細使用方式請參考 Hi-Tech Workshop的講義教材(在右邊的選項裡)。 在C18的話基本上是不用管這些鳥事的,如果要強定變數的BANK,可以用#PROGMA方式定位址,請參考 C18 Workshop的講義教材(在右邊的選項裡)。
發表於: 2004/9/27 17:47
|
|||
|
Re: 請問關於dsPIC30f2010使用到ctype.h時出現的問題?
|
||||
---|---|---|---|---|
版主
|
查過 Region data is full 的錯誤解釋如下:
The memory region REGION is full, but section secname has been assigned to it. 你說有編譯過我的程式一樣也會有此問題,這就很奇怪了,要不要將你的Project ZIP 候傳給我試試看。 你的 C30 的版本是哪一版? 我的是 v1.20
發表於: 2004/9/27 17:36
|
|||
|
Re: 請問關於dsPIC30f2010使用到ctype.h時出現的問題?
|
||||
---|---|---|---|---|
版主
|
不會阿! 我寫一段很短的程式測試你的問題,我並沒有你的問題發生,是不是 #include 的路徑沒設到。
請確定"Project" --> "Build Option" --> "Project" 下的設定為: $AINDIR = c:\pic30_tools\support\inc $INCDIR = C:\pic30_tools\include;C:\pic30_tools\support\h $LIBDIR = C:\pic30_tools\lib 我的程式如下: #define __dsPIC30F2010__ #include "c:\pic30_tools\support\h\p30F2010.h" #include <ctype.h> #define LED0 PORTDbits.RD0 #define LED1 PORTDbits.RD1 int main(void) { LATD = 0x0000; LED1=0; LED0=0; int ch='3'; if (isdigit(ch)) LED0=1; ch='#'; if (isdigit(ch)) LED1=1; while(1); // do for ever }
發表於: 2004/9/27 16:00
|
|||
|
Re: 使用PMLAB SIM時
|
||||
---|---|---|---|---|
版主
|
目前沒有說明書,你必須利用 MPLAB SIM 的 Help 功能。
以 MPLAB IDE v6.61 為例: 打開 MPLAB IDE 設定 MPLAB SIM後,在Debugger下選擇 SCL WorkbooK --> Register Injection 下就可以輸入16進制的檔案資料到某一特定的暫存器裡。 期詳細用法請參help下的 "MPLAB SIM Help" --> "Using New Stimulus" --> " SCL Generator Dialog" 之說明。
發表於: 2004/9/27 15:36
|
|||
|
Re: 馬達計數誤差太大問題??
|
||||
---|---|---|---|---|
版主
|
一個小小的建議用來偵測是否有中斷Lose:
可以在中斷程式裡加入兩行指令來檢驗中斷的發生與輸入的中斷脈衝的關連。 Int_Service: bsf PORTC,0 ; Set RC0 =1 when interrupt occurred : : bcf PORTC,0 ; RC0=1, RETFIE 1 ; Retuen with shadow register 然後用示波器量取中斷輸入與RC0,相互比較就可以知道是誰的問題了。 正常的話是一個中斷脈衝會讓RC0由Hi to Low變化一次,剩下的變化就讓你自己去想一想個中的錯誤了!
發表於: 2004/9/27 15:10
|
|||
|