Passare array a funzione

11 Anni 1 Mese fa #11 da StefA
Risposta da StefA al topic Passare array a funzione
tienici aggiornati.
I puntatori sono una rottura..ma sono utili e quando ci prenderai la mano non saranno poi così incasinati.
Ultimamente non li ho usati molto, per cercare una soluzione al tuo problema sono andato a sbirciare dentro la libreria di Mauro per lcd, se guardi dentro il file sorgente la funzione che scrive una stringa dovrebbe fare quello che cerchi di fare tu.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 1 Mese fa #12 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Passare array a funzione
Ciao,

in aggiunta a quanto detto controlla l'implementazione delle funzione write_message e write_string delle linrerie LCD o GLCD.

Passare un array o una stringa costante e' differente e la funzione o accetta una o l'altra opzione.

Nel caso di una stringa costante hai un puntatore ad una locazione di memoria flash mentre il passaggio di una stringa implica un puntatore alla memoria RAM. Per l'architettura Harvard dei PIC18 i due puntatori sono diversi.
Per un'architettura di von Neumann come gli MSP430 i due puntatori sarebbero uguali e la cosa sarebbe trasparente, ovvero e' indipendente dove la stringa viene memorizzata.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
11 Anni 1 Mese fa - 11 Anni 1 Mese fa #13 da firstcolle
Risposta da firstcolle al topic Passare array a funzione

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.

  • firstcolle
  • Avatar di firstcolle
  • Platinum Member
  • Platinum Member
Di più
11 Anni 1 Mese fa #14 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Passare array a funzione
sospetto lo zampino del compilatore.

I due puntatori se messi effettivamente in RAM e Flash sono differenti.

Credo che il compilatore, stia mettendo entrambi gli array in flash perche'

char array[]="asdfadf/0";

pur essendo formalmente una variabile, non mi sembra che la usi mai e il compilatore potrebbe considerarla indirettamente in flash.

Sarebbe interessante vedere la decodifica assembly del codice per vedere cosa sta facendo il compilatore in riguardo alle due variabili.

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