Go Down

Topic: [Risolto] PROBLEMA IDE O SKETCH AMR ??? (Read 2 times) previous topic - next topic

Giuseppe G.

Jan 31, 2013, 07:52 pm Last Edit: Feb 02, 2013, 12:18 am by Giuseppe G. Reason: 1
:smiley-roll:
Un saluto a tutti.

Durante l'upgrade del firmware AMR (Arduo Memory Reminder) ho riscontrato un problema non credo da sottovalutare.

Le versioni che ho postato, la R05i compilata con IDE 0023 e la R05J2 compilata con IDE 1.0.3 non hanno avuto mai problemi di questo tipo.
Non ho fatto alcuna modifica pesante, a parte la prima che ho dovuto abbandonare per mancanza di sram, quando ho cercato di inserire più lingue.

Verificando la nuova release su l' IDE 101, 102, 103 viene generato un bug, che credevo fosse legato allo sketch, ma dubito, a meno che qualcuno mi sappia dare una spiegazione non semplice da trovare.

I limiti della memoria, credo di averli rispettati, anche perchè con l' IDE 0023, non ho mai riscontrato problemi simili.
Al momento ci sono più di 700 byte di sram e più di 17k di flash liberi, anche con sketch più contorto.

Non comprendendo certi comportamenti del dispositivo, ho pulito il codice, semplificandolo sempre più e riducendolo.

Pensavo fosse un problema di sram, poi di stack. (PS: quale è il limite dello stack se c'è ?)

Sono arrivato a pensare che fosse un problema di micro, ma utilizzando un altro arduino uno r3 ho riscontrato lo stesso problema.

Cosa accade: se imposto la costante booleana che nel mio caso è "ablser=1", abilito la seriale e quindi il comando di stampa nel monitor seriale, mi viene visualizzato il valore free della sram che è di 738.

Per assurdo il device funziona correttamente e non visualizza anomalie.

Se imposto la costante booleana "ablser=0", disabilito la seriale e quindi il comando di stampa, credo liberando un bel po' di sram e codice.
Ecco che però si presenta il problema. Durante la visualizzazione degli allarmi, nella descrizione delle medicine, appare il carattere "||" (per intenderci l'OR per il linguaggio C), sia con la selezione della lingua italiana che inglese perchè ????????

Il dispositivo funziona comunque bene, ma se il carattere non si trova in un punto di print, può generare altri problemi.

Grazie per l'attenzione.

Giuseppe G.
Un saluto a tutta la comunità.
Giuseppe G.

PaoloP

Per abilitare e disabilitare la seriale ti conviene usare un define e la macro indef.

Un link alla discussione o al codice sarebbe gradito.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

leo72


Ecco che però si presenta il problema. Durante la visualizzazione degli allarmi, nella descrizione delle medicine, appare il carattere "||" (per intenderci l'OR per il linguaggio C), sia con la selezione della lingua italiana che inglese perchè ????????

Codice...

Giuseppe G.

Scusate ! Ecco il codice.

Ho esegiuto un cambiamento, inserendo una void "VIEWCFGALM" che contiene la visualizzazione delle "MEDicine" alla linea di codice 943 ed il carattere ora mi appare sulla scritta "Suoneria__P||t._2", (linea di codice 698) circa 300 righe di codice prima.

:*
Un saluto a tutta la comunità.
Giuseppe G.

leo72

Prova come ha detto Paolo, a togliere la seriale con le direttive per il compilatore.
Una semplice variabile non basta, la lib viene caricata ed inizializzata lo stesso perché il compilatore mica può sapere se durante l'esecuzione la seriale la userai oppure no.

Go Up