Cannot find include file <xc.h>

  • Lello Guidi
  • Autore della discussione
  • Platino Utente
  • Platino Utente
Di più
5 Anni 1 Mese fa #1 da Lello Guidi
Cannot find include file <xc.h> è stato creato da Lello Guidi
Non riesco a capire dove sbaglio e perchè mi esce questo avviso anche se mi da "build succesful".
Lo stesso avviso me lo da anche su "conf_12f675.h" e su #include "ADC_functions.c".
Sto usando MPLABX IDE 4.01 e XC8 2.10.
Inoltre ho linkato le librerie LT_lib 4.04 e settato la memoria a 32bit.
MPLAB x è installato su Windows 10.
Il sorgente è questo:
Code:
/***************************************** * Project: How to use PIC12F675 ADC * Author : 12 novembre 2019 * MPLABX IDE 4.01 e XC8 2.10 * Pin Configurations: * GP0 = Enable pin for LCD * GP1 = Serial Clock pin for LCD * GP2 = Serial Data pin for LCD * GP4 (AN3) is used as ADC input ******************************************/ #include <xc.h> #include "conf_12f675.h" #include "ADC_functions.h" #include "ADC_functions.c" #include "LCD.h" #include "LCD.c" #include "Includes.h" #define _XTAL_FREQ 4000000 // Main function void main() { unsigned int ADC_value = 0; unsigned int digit1, digit2, digit3, digit4; InitADC(AN3); // Initialize GP4 as ADC input pin InitLCD(); // Initialize LCD while(1) { ClearLCDScreen(); // Clear LCD screen ADC_value = GetADCValue(AN3); // Read ADC value from GP4 pin // ADC_value can have a value from 0 (0v) to 1023(5v) only. // SO display 4 digits of ADC_value digit1 = (unsigned int)(ADC_value/1000); // Calculate digit1 of ADC_value digit2 = (unsigned int)((ADC_value - digit1*1000)/100); // Calculate digit2 of ADC_value digit3 = (unsigned int)((ADC_value - (digit1*1000+digit2*100))/10); // Calculate digit3 of ADC_value digit4 = (unsigned int)(ADC_value - (digit1*1000+digit2*100+digit3*10)); // Calculate digit4 of ADC_value WriteDataToLCD(digit1+0x30); // Display digit1 of ADC_value on LCD WriteDataToLCD(digit2+0x30); // Display digit2 of ADC_value on LCD WriteDataToLCD(digit3+0x30); // Display digit3 of ADC_value on LCD WriteDataToLCD(digit4+0x30); // Display digit4 of ADC_value on LCD __delay_ms(1000); // Half second delay before next reading } }

Saluti

Lello

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
5 Anni 1 Mese fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Cannot find include file <xc.h>
Salve Lello,

è un bug dell'ambiente di sviluppo.
Purtroppo è presente dalla prima versione e non sembra risolto.
E' un poco fastidioso visto che auto-complete smette anche di funzionare e hai colori sbagliati sul codice.
In particolare è il parser che ha problemi, ma il compilatore riesce a compilare con successo anche se apparentemente sono presenti errori o mancano dei file.

Quindi è un problema del parser e non non del compilatore.
Se il compilatore segnala errori allora hai un problemi veri...

Alcune volte migliora se selezioni il progetto attivo, premi tasto destro del mouse e selezioni dal menu che si apre:

Code Assistant --> Reparse Project

ma il problema si ripresenterà comunque e dovrai ripetere l'azione periodicamente.

Saluti,

Mauro
I seguenti utenti hanno detto grazie : Lello Guidi

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Lello Guidi
  • Autore della discussione
  • Platino Utente
  • Platino Utente
Di più
5 Anni 1 Mese fa #3 da Lello Guidi
Risposta da Lello Guidi al topic Cannot find include file <xc.h>
Ok! Grazie...
Devo rivedere il progetto.
Saluti

Lello

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Lello Guidi
  • Autore della discussione
  • Platino Utente
  • Platino Utente
Di più
5 Anni 1 Mese fa #4 da Lello Guidi
Risposta da Lello Guidi al topic Cannot find include file <xc.h>
Se uso XC8 v2.10 non mi riconosce ANSEL, ADCON0 ecc.
Lo compila normalmente ma non lo carica tramite il PICkit3 e MPLAB X IDE 4.01.
Il programma è molto semplice ed è il seguente:
Code:
/*********************************************************** * main.c * LED blinking code for PIC12F675. * MPLAB X IDE 4.01 e XC8 1.45 * 18 novembre 2019 * ***********************************************************/ #include <xc.h> // CONFIG #pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD) #pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled) #pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) // Define LED pin #define LED GP0 // Define CPU Frequency #define _XTAL_FREQ 4000000 // Main function void main() { ANSEL = 0x00; // Set ports as digital I/O, not analog input ADCON0 = 0x00; // Shut off the A/D Converter CMCON = 0x07; // Shut off the Comparator VRCON = 0x00; // Shut off the Voltage Reference TRISIO = 0x08; // GP3 input, rest all output GPIO = 0x00; // Make all pins 0 while(1) { __delay_ms(500); // Half sec delay LED = 0; // LED off __delay_ms(500); // Half sec delay LED = 1; // LED on } }

Se invece apro il programma direttamente del PICkit3 versione 3.10 me lo carica senza problemi e visualizzo la memoria programmata.
Non ho idea dove sbaglio o devo usare versioni più recenti dei programmi?
Saluti

Lello

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Lello Guidi
  • Autore della discussione
  • Platino Utente
  • Platino Utente
Di più
5 Anni 1 Mese fa #5 da Lello Guidi
Risposta da Lello Guidi al topic Cannot find include file <xc.h>
Non capisco più niente!
Se chiudo il programma MPLAB X IDE e lo ricarico non mi da più gli errori precedenti descritti.
Il programma caricato nel pic fa lampeggiare regolarmente il led.
Saluti
Lello

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro Laurenti

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.