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

Re: [linux_var] Simbolo grado centigrado



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