Quando usare l'istruzione #pragma

11 Anni 3 Mesi fa #1 da ter2
Quando usare l'istruzione #pragma è stato creato da ter2
Salve a tutti, sono di nuovo qui a cercare di carpire i vostri segreti di programmazione!

Leggendo il C18-Step by step mi sono imbattuto nell'esempio sui Timers, dove per settare la configurazione dei registri si usa l'istruzione #pragma.
Nei miei progetti ho sempre usato scrivere nei vari bit come se fossero delle normali variabili.
Quindi la domanda è: qual'è la differenza dei due modi di settare i registri ?
Quando è bene usare una e l'altra?

Grazie ragazzi per l'aiuto che mi date!

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

  • ter2
  • Junior Member
  • Junior Member
Di più
11 Anni 3 Mesi fa #2 da shinshi
Risposta da shinshi al topic Quando usare l'istruzione #pragma
Ciao,

#Pragma è una direttiva che dai al compilatore e non è una vera istruzione eseguita dal programma. Serve per settare i registri di configurazione (anche detti fuses) dell'hardware del PIC che non è possibile modificare da programma ma solo al momento della programmazione. La direttiva #Pragma viene usata anche per altri scopi, nell'esempio dei Timer di pag 172 viene anche utilizzata per indicare al compilatore una porzione specifica della memoria programma dove memorizzare il codice, ovvero i vettori di interruzione.
Registri invece accessibile da riga di programma vengono utilizzati come dici tu, tipo una variabile, come ad esempio il registro T0CON per l'impostazione del Timer0.
Saluti
Luca
Ringraziano per il messaggio: bassfender

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
11 Anni 2 Mesi fa #3 da il duro
Risposta da il duro al topic Quando usare l'istruzione #pragma
Salve a tutti, prima di tutto volevo ringraziarvi per il tempo che spendete a rispondere alle nostre domande, dopo una lotta con il nuovo IDE xc8, con il vostro aiuto ho risolto molti errori,
però l'ultima esecuzione mi dà questi errori.

make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/Noe/MPLABXProjects/memoriz_infra_telec.X'
make -f nbproject/Makefile-default.mk dist/default/production/memoriz_infra_telec.X.production.hex
make[2]: Entering directory `C:/Users/Noe/MPLABXProjects/memoriz_infra_telec.X'
make[2]: Leaving directory `C:/Users/Noe/MPLABXProjects/memoriz_infra_telec.X'
make[1]: Leaving directory `C:/Users/Noe/MPLABXProjects/memoriz_infra_telec.X'
make[2]: *** No rule to make target `inc/delay.h', needed by `dist/default/production/memoriz_infra_telec.X.production.hex'. Stop.
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 297ms

Grazie ragazzi per l'aiuto che mi date!

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

  • il duro
  • New Member
  • New Member
Di più
11 Anni 2 Mesi fa #4 da shinshi
Risposta da shinshi al topic Quando usare l'istruzione #pragma
Ciao,
L'errore mi pare che ti dica che non trova il file inc/delay.h. Controlla i percorsi inseriti nel campo Include directories delle proprietà del progetto.
Saluti
Luca

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
11 Anni 2 Mesi fa #5 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Quando usare l'istruzione #pragma
Oltre a controllare i percorsi, accertati di aver incluso anche delay.c .

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login