long wert wird zerschossen


hallo miteinander,

ich übergebe über den seriellen monitor die zahl "123456789" und möchte die dann in einen long wert packen. doch dann kommt da -7616 bei raus :-(

ich dachte das ich long werte von 2 milliarden (- wie ins +) wert hinterlegen lassen. 

variablen sind vor dem "void setup() " deklariert!


code: [select]
      int freigabe_t;
      int richtung_t;
      long takt_t;
      int speed_t;


code: [select]
void befehl_config( char* text )
  {
    serial.println(text);
 
      char* str = text;

    serial.println(str); 
   
      char* ptr = strstr(str, "f=");
        if (ptr != null)
          { freigabe_t = atoi(ptr + 2); }
      ptr = strstr(str, "r=");
        if (ptr != null)
          { richtung_t = atoi(ptr + 2); }
      ptr = strstr(str, "t=");
        if (ptr != null)
          { takt_t = atoi(ptr + 2); }
      ptr = strstr(str, "rpm=");
        if (ptr != null)
          { speed_t = atoi(ptr + 4); }


text = "config,t=123456,f=1,r=0,rpm=50"



wo habe ich denn den denkfehler?

gruß mücke

mein c handbuch sagt:
quote
int atoi (const char * str);
ich würde nicht erwarten, dass long funktioniert.

du suchst vermutlich strtol(), oder so..


Arduino Forum > International > Deutsch (Moderator: uwefed) > long wert wird zerschossen


arduino

Comments