[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] Simbolo grado centigrado



Ciao a tutti, e grazie a tutti per i consigli,  che sono stati come olio che hanno messo in funzione le mie parti arruginite.
MUMBLE MUMBLE e stamattina all'una e mezza ho risolto come consigliato di usare il tipo di dato char associato al codice 176.
Felice.

Il 23/04/2016 13.54, Felice.ferrazza ha scritto:
Grazie ragazzi, però adesso il problema rimane quello delle prove, inserire cioè il carattere ° come codice all'interno dell'istruzione, secondo voi come potrebbe essere corretta l'istruzione: u8g.print(String(temp, 1) + "°C"); ?
Temp è una variabile di tipo float che contiene il valore di temperatura
C'entra l'istruzione char?
Sono troppo arrugginito per ora per ricordare come si fa.
Grazie di nuovo.
Felice.

Il 23/04/2016 11.55, Giovanni Orlandi ha scritto:
a me sembra elementare:

i caratteri del testo vengono rappresentati con dei numeri
i caratteri ascii standard vanno da 32 (spazio)
a 127 (tilde)
tutti gli altri caratteri vengono rappresentati
con diversi codici a seconda del sistema di codifica

il carattere grado non è standard...

la libreria del display si aspetta i caratteri codificati come XXXX

L' IDE di arduino usa la codifica YYYY

L' IDE sotto windows usa la codifica WWWW

per il carattere grado le codifiche XXXX WWWW sembrano corrispondere,
non è detto che corrispondano con tutti
gli altri caratteri tipo lettere accentate,
simbolo euro etc...


Il sabato 23 aprile 2016, Felice.ferrazza <felice.ferrazza@alice.it> ha scritto:
Ciao Cristian, per quanto riguarda le librerie sono le stesse, tutte le librerie di arduino che servono anche quella del display oled, sono satate copiate dal sistema n. 1 (finestre 7)
Il sistema linux mint dovrebbe usare solo le risorse dell'IDE compilatore e caricatore del codice su arduino.
Potrebbe essere possibile che linux mint decida di usare il compilatore locale piuttosto che quello IDE?
Accidenti se fosse così il compilatore C di linux è l'alieno?
Felice.


Il 23/04/2016 10.49, Cristian Gaiatto ha scritto:
Se ho capito bene, anche se l'IDE è uguale sia in win che in linux, utilizza delle librerie del SO per compilare o qualcosa del genere, e che quindi possono avere delle differenze.

Cristian

Il 23/04/2016 10:25, Felice.ferrazza ha scritto:
Grazie delle risposte, ma prima di fare delle prove, non riesco a capacitarmi di cosa possa cambiare tra un sistema operativo e l'altro durante la compilazione dello sketch.
Io ragiono così.
Sistema operativo n. 1
 -- IDE arduino 1.6.7
 -- circuito elettronico  micro, display oled ecc.
 -- Sketch del programma.
 -- compilazione a buon fine senza errori
 -- accensione del circuito, elettronica e programma funzionano regolarmente.

Sistema operativo n. 2
-- IDE arduino 1.6.7
 -- circuito elettronico  micro, display oled ecc.    uguale
 -- Sketch del programma                                        uguale
 -- compilazione a buon fine senza errori               uguale

 -- accensione del circuito, elettronica e programma funzionano regolarmente  ***
*** tranne la maledetta A  che si frappone tra il valore decimale e il simbolo di grado 21.3A°C.
Capite? il simbolo di grado viene visualizzato correttamente ma "qualcuno"  "qualcosa" ci mette questa A sormontata da simbolo ^ quando uso Linux Mint.
Come tutti i sistemi similari dal programma SKetch,  Il compilatore produce in uscita un codice in esadecimale che viene caricato in memoria flash di arduino.
A logica, suppongo che quel codice sia lo stesso quando sono sul sistema operativo 1 e sistema operativo 2.
Ma chi è quell'alieno che ci aggiunge la A sormontata da ^ e in quale passaggio?
Mi sembra più un problema da investigatore che da tecnico ;D
Felice.
 

Il 23/04/2016 09.09, Giovanni Orlandi ha scritto:
anche io penso sia un problema di codifica - charset etc...
in pratica devi capire il display oled che codifica utilizza...
se vuoi un workaround, ti consiglio di scrivere sul display tutti i caratteri da 128 a 255
vedere a quale codice corrisponde il grado ° e madarglielo come serial write oppure
definire una stringa come 

char strGradi[3] = "*C" ;

e poi cambiare 

strGradi[0] = codiceCharGrado ;

ovviamente la stringa non può essere definita com costante nella flash ( niente F() )

Gio


Il giorno 23 aprile 2016 06:49, Antonio Giovanni Colombo <azc100@gmail.com> ha scritto:
Sono digiuno di Arduino, ma sospetto che si tratti di un problema di codifica UTF-8. Se invece che il simbolo di grado ci metti un qualsiasi simbolo ASCII puro (tra 0 e 127, per esempio l'asterisco), il problema dovrebbe "scomparire". Se è questo il caso, dovresti poi impostare la codifica a Latin1 o a ISO-8859-qualcosa, ossia a qualcosa che vive "bene" anche con la parte ASCII da 128 a 255.

Ciao, Antonio


2016-04-22 21:41 GMT+02:00 Felice.ferrazza <felice.ferrazza@alice.it>:
Ciao a tutti, mi succede una cosa davvero strana riguardo al simbolo del grado centigrado, ovvero il cerchiolino che rappresenta i gradi di temperatura.
Questo che segue è il mio problema.
Si tratta di un progettino con arduino e un sensore che rivela temperatura e umidità.
Se utilizzo il sistema operativo finestre 7, IDE arduino 1.6.7, lo sketch viene compilato senza errori e scaricato al micro atmega328 e il circuitino visualizza su un display Oled correttamente per esempio 21.3°C.

Adesso arriva il caso veramente strano per me.
Praticamente ho fatto un copia e incolla su linux Mint di librerie, e Skecth.
Se cambio sistema operativo (stesso PC) e uso Linux Mint, uguale IDE, uguale libreria, uguale Sketch il  display visualizza 21.3A°C.
Nessun errore di compilazione.
La A è sormontata dal simbolo di elevato ^, in pratica qualcosa inserisce questa A sormontata, tra il 3 e il simbolo di grado.
Ho provato a mettere uno spazio prima del simbolo ° ma niente.
Temp è una variabile di tipo float che contiene il valore di temperatura
float temp=dht.getTemperature();
u8g.print(String(temp, 1) + "°C");

Altra cosa strana è che invece se osservo i valori sulla seriale di arduino vedo la visualizzazione corretta senza la A.
Serial.println(String(temp, 1) + "°C");  // ok 21.3°C.
Qualcuno è capace di illuminarmi del perchè succede questo errore?
Fate uno sforzo per favore, troviamo la soluzione, perchè provo tremendamente un grande fastidio che che mi succeda con Linux e con finestre NO.
Ciao e a presto.
Felice.






_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



--
   /||\    | Antonio Colombo
  / || \   |  azc100@gmail.com  
 /  ()  \  | antonio@geekcorp.com  
(___||___) |   azc10@yahoo.com


_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking




--
-----------------------------------------------------------------------------------------
Luca 18,5 : "Poiché questa vedova è così molesta le farò giustizia, perché non venga continuamente a importunarmi".
Neemia 8,10 : "...questo giorno è consacrato al nostro Signore; non siate tristi; perché la gioia del Signore è la vostra forza".
GSM 345.6050488 / 327.0547392 / 392.0698126 - Fax 06.62204735


_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



--
-----------------------------------------------------------------------------------------
Luca 18,5 : "Poiché questa vedova è così molesta le farò giustizia, perché non venga continuamente a importunarmi".
Neemia 8,10 : "...questo giorno è consacrato al nostro Signore; non siate tristi; perché la gioia del Signore è la vostra forza".
GSM 345.6050488 / 327.0547392 / 392.0698126 - Fax 06.62204735


_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking

_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking