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 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.
-----------------------------------------------------------------------------------------
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
-- ----------------------------------------------------------------------------------------- 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