linguaggio c

7 Anni 2 Mesi fa #1 da elpablito
linguaggio c è stato creato da elpablito
Buon giorno
La domanda potrebbe essere banale, ma non so la risposta.
Che differenza fa tra queste due istruzioni?

#define pippo PB1

int pippo = PB1;

Dove PB1 = port B bit1

al solito si ringrazia
Paolo

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

  • elpablito
  • Platinum Member
  • Platinum Member
Di più
7 Anni 2 Mesi fa #2 da alfa75
Risposta da alfa75 al topic linguaggio c
Salve ,
Paolo.
la #define è una costante è fa parte delle direttive al preprocessore, quando il codice viene compilato il compilatore non fa altro che assocciare ai vari "pippo" che trova la porta RB1 (che a sua volta è gia definità all'interno di una struct nel file header del compilatore).

con la seconda istruzione dichiari una variabile intera che occuperà 2 byte di memoria è che potrai manipolare all'interno del codice.

Saluti,
Andrea

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
7 Anni 2 Mesi fa #3 da elpablito
Risposta da elpablito al topic linguaggio c
Alfa75 si ringrazia, ciò che mi dicevi mi è abbastanza chiaro, ma dimmi dove sbaglio.
In ambedue i casi mi vado a definire una porta e ogni volta scrivo pippo è come scrivessi PB1, con la differenza che con int mi sono giocato due byte, dove è memorizzato lo stato della porta, qualora interessi. In definitiva nel secondo caso mi sono risparmiato un define e nulla più, visto che lo stesso risultato lo posso ottenere con un define più una variabile.
Paolo

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

  • elpablito
  • Platinum Member
  • Platinum Member
Di più
7 Anni 2 Mesi fa #4 da alfa75
Risposta da alfa75 al topic linguaggio c
Aspetta!
analizziamo un caso più specifico:

se io dichiaro

int pippo = PORTBbits.RB0;

pippo assumerà il valore del pin RB0 (cioè 0 o 1)

ma se io volessi "scrivere" su quel pin (ad esempio portarlo semplicemente ad 1 )
cioè:
pippo = 1;
la variabile pippo assumerebbe valore 1 ma il valore del port rimarebbe invariato.

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
7 Anni 2 Mesi fa - 7 Anni 2 Mesi fa #5 da Cosimix
Risposta da Cosimix al topic linguaggio c

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Cosimix
  • Avatar di Cosimix
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiStefA

Registrati al sito

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

Registrati al sito LaurTec.

Login