Errore conversione

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

#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 :smiley:

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.

Grazie =( non avevo considerato questo aspetto :sleeping: