Setting MPLAB per usare correttamente le librerie e gli headers

7 Anni 9 Mesi fa #1 da peppe855
Salve, sono un nuovo utente iscrittosi pochi minuti fa'! Ma veniamo alla descrizione del mio problema, ho scaricato MPLABIDE v3.35 e compilatore XC16 v1.25 con lo scopo di utilizzare un dspic30f6010a montato su una board microchip. Ho creato un nuovo progetto indicando il tipo di cpu di programmatore e di compilatore, dopo di che sono andato il file-->project properties e qui iniziano i miei molteplici dubbi:
1) sotto la voce conf: [default] c'è la voce libraries;
2) andando su XC16 (global options) e spostando lo sguardo a sinistra tra le tante cose leggo due voci: define common macros, common include dirs;
3)andando in XC16-as (general options) nei primi quattro campi (che a me di default sono vuoti);
4)andando in XC16-gcc (preprocessing and messages) nelle prime due voci (c include dirs e define c macros) che di default mi risultano vuote;
5) andando su XC16-ld (libraries) nelle prime due voci (libraries e libraries directory) che a me di default sono vuote;

Ora la domanda è se io lascio i campi indicati sopra vuoti, file.h e librerie microchip (posti in C:\Program Files (x86)\Microchip\xc16\v1.25) vengono tranquillamente individuati?
Se invece volessi fare in un mio progetto: un mio header, un modulo associato al file header (cioè intendo un file.c che contiene funzioni i quali prototipi sono stati introdotti nell'header) e un main quali campi bisogna settare?

Lo chiedo perchè ho provato a creare un mio header in cui ponevo un protipo della mia funzione, poi un file.c in cui svolgevo la funzione ed un main in cui la richiamavo e stranamente (per me) il programma funziona anche se nel main e nel file.c elimino l'inclusione dell' header da me creato.
Spero di aver esposto chiaramente i miei dubbi e spero vivamente in un vostro aiuto.
Un anticipato grazie ed un saluto a tutti voi

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

  • peppe855
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa #2 da peppe855
Vorrei rispiegare alcuni passi dato che mi è sembrato di esser stato parecchio caotico! Allora creo un nuovo progetto e andando sulla sinistra faccio:
1)
Header files tasto destro new xc16_header.h (che chiamo esempheader) e quindi ci vado a scrivere queste banali righe di codice: #include <xc.h>
#define esempheader_H
void funzione (void);
2)
Vado su Source files tasto destro newmain xc16.c (e lo chiamo esempheader) e ci vado a scrivere queste istruzioni:
#include <xc.h>
#include "esempheader.h"
int c;
void funzione() {
c=30;
}
3)
Vado ancora su Source files tasto destro etc e ci metto il codice:
#include <xc.h>
#include "esempheader.h"
#pragma config FOSFPR = FRC_PLL16
#pragma config FCKSMEN = CSW_FSCM_OFF
#include <p30F6010A.h>
int main(void) {

funzione();
while(1);

}

4)
In project properties non ho inserito nessun tipo di percorso

Il programma funziona, poi pero' ho provato ad escludere tramite commento sia nel file main.c che nel file esempheader.c l'inclusione #include "esempheader.h" e il programma funziona ancora perfettamente, ma come è possibile mancando cosi' di fatto la dichiarazione del prototipo della funzione?
spero possa essere piu' chiaro :)

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

  • peppe855
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #3 da Cosimix
Ciao!

Prova a creare un nuovo progetto e a ripetere le stesse operazioni senza le due inclusioni. Non vorrei che nel momento in cui esegui la compilazione, il compilatore ricordasse la vecchia associazione dei file.

Saluti,
Cosimo
Ultima Modifica 7 Anni 9 Mesi fa da Cosimix.

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

  • Cosimix
  • Avatar di Cosimix
  • Elite Member
  • Elite Member
Di più
7 Anni 9 Mesi fa #4 da peppe855
Ciao, grazie per l'intervento.
Allora ho provato a ricreare il progetto e a non scrivere le inclusioni ma continua a funzionare. :dry:

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

  • peppe855
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #5 da Cosimix
Prego! :)
Allora, ho un vago ricordo di questa cosa. Se non erro, nel momento in cui aggiungi i file .h e .c al progetto, il compilatore si occupa in automatico delle varie inclusioni.

Saluti,
Cosimo
Ultima Modifica 7 Anni 9 Mesi fa da Cosimix.

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

  • Cosimix
  • Avatar di Cosimix
  • Elite Member
  • Elite Member
Di più
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.

Login