Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Char come argomento di funzione

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Char come argomento di funzione

Messaggioda Foto UtenteSjuanez » 15 dic 2015, 7:21

Salve a tutti,
questa faccenda si potrebbe sicuramente risolvere con lo studio del C, ma ora sono a corto di tempo e mi vedo costretto a chiedere una soluzione pronta. Se per favore potrete darmela.

Ho questa funzione:
Codice: Seleziona tutto
void bmpDraw(char *filename, uint8_t x, uint8_t y) {


Come primo argomento accetta una variabile char.

Io ho bisogno di comporre la variabile char in questo modo:

"i.bmp"

dove i è una variabile Int che uso come contatore.

Quindi la domanda:
come trasformo una variabile concatenata composta da una Int e una Stringa in char?

So che la domanda è banale, ma non ho ora il tempo di approfondire.

Vi ringrazio infinitamente.
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 6 8 13
G.Master EY
G.Master EY
 
Messaggi: 3479
Iscritto il: 18 mar 2015, 13:48

1
voti

[2] Re: Char come argomento di funzione

Messaggioda Foto UtenteCandy » 15 dic 2015, 8:31

No, quello che hai postato è la dichiarazione di una funzione che ha in ingresso un puntatore ad una stringa col nome del file. Ora sta a te, indipendentemente da cosa devi fare, generare il nome file, nel modo che vuoi, e passare alla funzione il suo puntatore.
Se vuoi passare per una variabile numerica, puoi creare il nome file con, spero sia compreso, la classia funzione di print o format.

Codice: Seleziona tutto
char fname[50];
sprintf(fname, "%i.bmp", iFileName);
bmpDraw(fname, ....)
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

0
voti

[3] Re: Char come argomento di funzione

Messaggioda Foto UtenteSjuanez » 15 dic 2015, 8:34

http://playground.arduino.cc/Main/Printf
Dovrebbe funzionare!

Grazie, tra un po provo e ti faccio sapere. :D

O_/ O_/ O_/
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 6 8 13
G.Master EY
G.Master EY
 
Messaggi: 3479
Iscritto il: 18 mar 2015, 13:48

1
voti

[4] Re: Char come argomento di funzione

Messaggioda Foto Utentefairyvilje » 15 dic 2015, 9:01

Tu prima di chiamare quella funzioni lavori con una stringa di questo tipo o questo?
Perché nel secondo caso non puoi usare direttamente la funzione sprintf (sempre sperando che sia correttamente implementata e disponibile nell'ambiente di arduino). Dovresti fare una conversione con un qualche metodo offerto dalla classe String. Che non è la string del C++ che pure esisterebbe, ma una sorta di implementazione più Java style che non conosco nel dettaglio.

Si perché quelli che hanno inventato il C++ si sono fatti un culo per progettare una libreria standard e di template con tutti i dettagli più impensabili, per dare un'interfaccia comune ai programmatori, quindi quelli di arduino si sono chiesti come rovinare tutto ciò :mrgreen: .

Edit: Eccola!
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

1
voti

[5] Re: Char come argomento di funzione

Messaggioda Foto UtenteRussell » 15 dic 2015, 11:21

se usi l'oggetto string in effetti avresti varie scorciatoie per la gestione di testo + numeri
https://www.arduino.cc/en/Tutorial/StringAppendOperator
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25

0
voti

[6] Re: Char come argomento di funzione

Messaggioda Foto UtenteSjuanez » 15 dic 2015, 11:37

Allora,
innanzitutto grazie a tutti.

Seguendo il suggerimento di Mauro non sono riuscito ad arrivare lontanissimo perché la documentazione sulle funzioni di Arduino non mi dava grandi informazioni e io sono a digiuno di C. (da recuperare!)

Ho avuto più fortuna con l'idea di Foto Utentefairyvilje ed ecco che il codice ora funziona.

:arrow: In pratica dovevo visualizzare su un piccolo display una grande raccolta di foto con una sequenza predeterminata.

Inizialmente, per comodità, mi ero ricavato l'elenco dei file dalla cartella e l'avevo caricato in un'array, così:
Codice: Seleziona tutto
char *images[] = {"mare.bmp","cielo.bmp","spiaggia.bmp","logo.bmp","quello_che_vuoi.bmp"};


Funzionava, ma se continuavo a caricare foto partiva l'avviso della scarsa memoria. Siccome come dicevo non ho molto tempo, ho rinominato tutte le foto con numeri progressivi utilizzando un software e adesso le richiamo così.

E' la prima volta che mi scontro con le differenze tra la programmazione su PC e quella su microcontrollore. E' stata una buona lezione, e un buon monito a fare le cose per bene con questi strumenti.


Grazie ancora a tutti.
O_/ O_/ O_/
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 6 8 13
G.Master EY
G.Master EY
 
Messaggi: 3479
Iscritto il: 18 mar 2015, 13:48


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti