Re: How is the check sum calculate?
|
||||
---|---|---|---|---|
新會員
|
因使用bootloader功能,只更新局部的程式,所以需要局部程式check sum的算法,以驗證以bootloader更新程式的內容正確,可以提供比較好的局部程式的check sum算法嗎,謝謝
發表於: 2005/11/7 20:40
|
|||
|
有那位高手知道18f8722 如何定義RAM的實際位址
|
||||
---|---|---|---|---|
中級會員
|
如題:
我使用: #pragma udata gpr1 uchar TEST; 的方式COMPILER都OK,但TEST的位置卻不在bank 1 好奇怪! 若使用(直接指定位址): #pragma udata LL0=0x100 COMPILER 會出現錯誤。 但之前使用18f452是可以work的… 重安裝c18 V.23及MPLAB V7.20還是無改善… 照理說,在沒有定義RAM的實際位址之下但有定義 各BANK的名字如同18F8722.LKR檔中相互對映時 COMPILER應該會按照這些定義去設定各變數的位址 但…結果卻是COMLIPER自行亂安排… ★☆有那位高手知道18f8722 如何定義RAM的實際位址?
發表於: 2005/11/7 18:27
|
|||
|
Re: ICD2 突然抓不到IC......
|
||||
---|---|---|---|---|
新會員
|
嗯 已經寄回去給代理商了 不過代步車已經都被借光了 >"<
發表於: 2005/11/7 18:06
|
|||
|
Re: dsPIC30F2010內部data EEPROM如何讀取及寫入
|
||||
---|---|---|---|---|
新會員
|
henrytan@pmaster.com.cn,急需讀寫 dsPIC EEPROM 的C语言範例程式,非常感谢!!!
發表於: 2005/11/7 17:54
|
|||
|
關於兩pic18f452資料互傳問題
|
||||
---|---|---|---|---|
新會員
|
各位先進大家好:
個人為初學者目前有一問題無法解決,尚請先進們能幫幫忙,我用兩18f452以rs232互傳資料,不知是否中斷設定有問題,有時正常有時不動作,還請各位能夠給予指點.謝謝! #include <p18f452.h> //MASTER #define BaudRate 25 void High_INT_SER(void); void InitialUSART(void); void PUTCHAR(char c); char DATA[3]; char SEND[3]={0x40,0x31,0x2A}; char RI_PTR; char sw; //******** INTERRUPT PROGRAM ******* #pragma code High_Interrupt_Vector=0x0008 void High_INT_VEC(void) { _asm goto High_INT_SER _endasm } #pragma code //**********接收中斷副程式 ************** #pragma interrupt High_INT_SER void High_INT_SER(void) { if(PIR1bits.RCIF==1) { DATA[RI_PTR]=RCREG; RI_PTR++; if(RI_PTR==2) RI_PTR=0; } } #pragma //************ MAIN PROGRAM void main(void) { char i; TRISB=0xff; TRISD=0x00; ADCON1=0x06; InitialUSART(); while(1) { if(PORTB!=sw) sw=PORTB; for(i=0;i<3;i++) PUTCHAR(SEND[i]); } } //************** InitialUSART ***************** void InitialUSART(void) { RCONbits.IPEN=1; INTCONbits.GIEH=1; INTCONbits.PEIE=1; RCSTAbits.SPEN=1; RCSTAbits.CREN=1; TXSTAbits.TXEN=1; TXSTAbits.BRGH=1; PIE1bits.RCIE=1; PIR1bits.RCIF=0; IPR1bits.RCIP=1; SPBRG=BaudRate; } //*********** PUTCHAR 傳遞副程式 void PUTCHAR(char c) { TXREG=c; while(TXSTAbits.TRMT!=1); } //***************SLAVE******************** #include <p18f452.h> #define BaudRate 25 void High_INT_SER(void); void InitialUSART(void); void PUTCHAR(char c); char DATA[3]; char SEND[3]={0x40,0x31,0}; char RI_PTR; char SEND_FLAG=0; char sw=0x00,i; //************* INTERRUPT PROGRAM **** #pragma code High_Interrupt_Vector=0x0008 void High_INT_VEC(void) { _asm goto High_INT_SER _endasm } #pragma code //***************************** #pragma interrupt High_INT_SER void High_INT_SER(void) { if(PIR1bits.RCIF==1) { DATA[RI_PTR]=RCREG; RI_PTR++; if(RI_PTR==2) RI_PTR=0; } } #pragma //************ MAIN PROGRAM ****** void main(void) { TRISB=0xff; ADCON1=0x06; InitialUSART(); while(1) { while(PORTB==sw); sw=PORTB; SEND[2]=PORTB; SEND_FLAG=0; while(SEND_FLAG!=1); for(i=0;i<3;i++) PUTCHAR(SEND[i]); SEND_FLAG=0; } } //************** InitialUSART ***************** void InitialUSART(void) { RCONbits.IPEN=1; INTCONbits.GIEH=1; RCSTAbits.SPEN=1; RCSTAbits.CREN=1; TXSTAbits.TXEN=1; TXSTAbits.BRGH=1; PIE1bits.RCIE=1; PIR1bits.RCIF=0; IPR1bits.RCIP=1; SPBRG=BaudRate; } //*********** PUTCHAR ********************* void PUTCHAR(char c) { if(PIR1bits.TXIF!=0) TXREG=c; while(TXSTAbits.TRMT!=1); }
發表於: 2005/11/7 17:54
|
|||
|
Re: How is the check sum calculate?
|
||||
---|---|---|---|---|
版主
|
PIC16F876A 有提供 Program Read 的功能,所以就可以做 Check-Sum 的檢驗,將程式碼以 Byte 方式相加成16-bit 的和,直到最後倒數第二個位址,將總和再取2'S運算後填入最後一個位址,這時所有程式碼的加總就等於零。若程式碼加總後不為零則表示程式 Check-Sum error.
發表於: 2005/11/7 16:36
|
|||
|
Re: [問題]請教關於CCS語法的問題
|
||||
---|---|---|---|---|
新會員
|
嗯~~了解。
我有試著看過它在PROGRAM MEMORY裡的程式了,的確如此,在宣告的變數時,會把所設定的初值複製到DATA MEMORY(難怪我宣告越大的陣列,PROGRAM MEMORY就會減少...)。 而STRCPY使用的效果也比起自己用MEMCPY()寫CODE處理好多了,程式碼還較短,又能傳字串常數。 看樣子,自己寫的函數真的是無法傳字串常數進去了。
發表於: 2005/11/7 16:34
|
|||
|
Re: ICD2 突然抓不到IC......
|
||||
---|---|---|---|---|
版主
|
找一下 Microchip 或代理商的 FAE 測一下,壞了就送修,至於有沒有提供代步車就要看代理商有無庫存可借用了。
發表於: 2005/11/7 16:24
|
|||
|
Re: 請板大或者有用過APP001的大人幫我ㄧ下
|
||||
---|---|---|---|---|
版主
|
一系列PIC的教育訓練課程順序上下來會有幫助的:
W100 --> W201 --> W401 -->W402 W100 : PIC18初級組語 W210 : 了解週邊 W401 : C18 初階 W402 : C18 進階
發表於: 2005/11/7 16:20
|
|||
|