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
|
|||
|
Re: 燒錄問題...LF跟F系列
|
||||
---|---|---|---|---|
版主
|
2.8V時,用的不是 ICSP 燒錄方式,速度會比較慢。
ICD2 在燒錄是會先偵測Target Vdd, 若在4.5V以上會用標準的 ICSP 模式燒錄,速度較快。如果低於4.5V, ICD2 就會啟動另一種低壓燒錄模式,速度較慢。
發表於: 2005/11/7 16:14
|
|||
|
Re: 該使用哪顆PIC比較好?
|
||||
---|---|---|---|---|
版主
|
做專題無所謂量產問題,先完成再說,IC 可考慮電子材料店就可以買的到的 PIC16F877 或 PIC18F452 , 4X4鍵盤掃描,LCD 及EEPROM 書本有好多範例。 台科大圖書出版的 " 詳細解析PIC18F877原理與應用" (洪正瑞老師著) 就能解決你的專題報告。
發表於: 2005/11/7 16:10
|
|||
|