Go Down

Topic: Errore conversione (Read 357 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy