Re: XC8T v1.0 教材的程式編譯顯示錯誤
|
||||
---|---|---|---|---|
新會員
|
謝謝板主,已解決。
發表於: 2021/1/7 9:34
|
|||
|
XC8T v1.0 教材的程式編譯顯示錯誤
|
||||
---|---|---|---|---|
新會員
|
如題,在研究XC8T v1.0 教材裡的PIC16F1939 FSRH:FSRL ROM指標練習時,將教材裡的檔案開啟直接進行編譯,卻發生以下錯誤訊息,請問是我哪邊沒有設定好嗎?使用MPLAB X IDE v5.35,再請幫忙解答,thx!
1. 教材內容,如下 ------------------------------------------------ #include // ************ 設定 PIC16F1937 Configuration Bits ****** // PIC16F1939 Configuration Bit Settings // 'C' source line config statements #include // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. // CONFIG1 #pragma config FOSC = ECH // Oscillator Selection (ECH, External Clock, High Power Mode (4-32 MHz): device clock supplied to CLKIN pin) #pragma config WDTE = ON // Watchdog Timer Enable (WDT enabled) #pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled) #pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR) #pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled) #pragma config CPD = OFF // Data Memory Code Protection (Data memory code protection is disabled) #pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled) #pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin) #pragma config IESO = ON // Internal/External Switchover (Internal/External Switchover mode is enabled) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) // CONFIG2 #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) #pragma config VCAPEN = OFF // Voltage Regulator Capacitor Enable (All VCAP pin functionality is disabled) #pragma config PLLEN = ON // PLL Enable (4x PLL enabled) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset) #pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) #pragma config LVP = ON // Low-Voltage Programming Enable (Low-voltage programming enabled) const unsigned char Lookup_Table[ ] = {0xA0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 80, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 80, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 80, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 0xAA, 0xAB}; unsigned char Input_Buffer[320] @0x21; const unsigned char *near ROMPTR = Lookup_Table; unsigned char *near RAMPTR = Input_Buffer; // PTR 指標位址設在 Access Memory near unsigned int j; // 變數 j 放在 Access Memory void main(void) { for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; while (1); } -------------------------------------------------------- 2. 錯誤訊息,如下 -------------------------------------------------------- Program Lookup Table FSR.c:54:32: error: expected ';' after top level declarator unsigned char Input_Buffer[320] @0x21; ^ ; Program Lookup Table FSR.c:55:26: error: expected ';' after top level declarator const unsigned char *near ROMPTR = Lookup_Table; ^ ; Program Lookup Table FSR.c:56:16: error: redefinition of 'near' with a different type: 'unsigned char *' vs 'const unsigned char *' unsigned char *near RAMPTR = Input_Buffer; // PTR }]b Access Memory ^ Program Lookup Table FSR.c:55:22: note: previous definition is here const unsigned char *near ROMPTR = Lookup_Table; ^ Program Lookup Table FSR.c:56:20: error: expected ';' after top level declarator unsigned char *near RAMPTR = Input_Buffer; // PTR }]b Access Memory ^ ; Program Lookup Table FSR.c:57:1: error: unknown type name 'near' near unsigned int j; // j b Access Memory ^ Program Lookup Table FSR.c:57:6: error: expected identifier or '(' near unsigned int j; // j b Access Memory ^ Program Lookup Table FSR.c:61:10: error: use of undeclared identifier 'j' for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; ^ Program Lookup Table FSR.c:61:17: error: use of undeclared identifier 'j' for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; ^ Program Lookup Table FSR.c:61:27: error: use of undeclared identifier 'j' for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; ^ Program Lookup Table FSR.c:61:32: error: use of undeclared identifier 'RAMPTR' for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; ^ Program Lookup Table FSR.c:61:44: error: use of undeclared identifier 'ROMPTR' for (j = 0; j <= 302; j++)*RAMPTR++ = *ROMPTR++; ^ 11 errors generated.
發表於: 2020/12/31 14:26
|
|||
|