Go Down

Topic: Errore conversione (Read 340 times) previous topic - next topic

M4s3r4t1

Salve, mentre stavo effetuando la conversione di uno sketch da arduino due ad arduino mega mi sono imbattuto in questo strano problema:

Code: [Select]
#include <Arduino.h>
#include <SPI.h>

void setup() {
  Serial.begin(9600);
  Serial.println(atoi( "123456" ), DEC);
}

void loop()

}


Su arduino mega il risultato è -7616 mentre su arduino due il risultato è corretto ed è 123456. Eseguendo un paio di prove ho scoperto che cambiando la stringa Serial.println(atoi( "123456" ), DEC); con  Serial.println(atoi( "12345" ), DEC); il risultato in entrambe le board si presenta corretto 12345. Quale puo essere il problema? grazie in anticipo :D

leo72

atoi converte una stringa in intero, però sulla MEGA un intero è lungo al max 16 bit, ossia da -32768 a +32767 oppure da 0 a 65535 in caso di interi senza segno.
Sulla DUE gli interi (probabilmente) sono a 32 bit per cui il valore è correttamente gestito.

M4s3r4t1

Grazie =( non avevo considerato questo aspetto :smiley-sleep:

Go Up