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!
text = "config,t=123456,f=1,r=0,rpm=50"
wo habe ich denn den denkfehler?
gruß mücke
 							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:
du suchst vermutlich strtol(), oder so..
 							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
Post a Comment