ja ok im großen und ganzen habe ich das jetz verstanden
auf der einen seite lag der bei knapp 600 also passt das undgefähr.
emm ebend ma kurz ne andere frage
Code:
#include "stdlib.h"
#include "asuro.h"
#include "lcd.h"
#include "i2c.h"


int o = 1;

void start(int speed)
{
 int keys;
 int i = 1;
 int zaehler = 0 ;
 while(i >0)
	  {
 	   keys = PollSwitchLCD();
   	   if (keys & LCD_KEY_YELLOW)		//schwarzer Taster
  	   {
	   	while ( zaehler == 0)
		{
		 if(speed < 355)					//Geschwindigkeit erhöhen
		 {
         speed = speed +10;
		 ClearLCD(); 
		 PrintSetLCD(0,0,"Geschwindigkeit");
		 SetCursorLCD(0, 1);
		 zaehler  = zaehler +1;
    	 PrintIntLCD(speed);
		 }
         zaehler  = zaehler +1;
		 }
  		}
    	else if (keys & LCD_KEY_RED )	//roter Taster
    	{								//wechseln von der Geschwindigkeiseinstellung
        i = 0;							//in den Messbetrieb	
    	}
    	else if (keys & LCD_KEY_BLUE )	//Blauer Taster
    	{
		while ( zaehler == 0)
		{
		 if(speed >0)
		 {
         speed = speed -10;				//Geschwindigkeit vermindern
		 ClearLCD();
		 PrintSetLCD(0,0,"Geschwindigkeit");
		 SetCursorLCD(0, 1);
	     PrintIntLCD(speed);
		 zaehler  = zaehler +1;
		 }
		zaehler  = zaehler +1;
		}
    	}
		if(!keys)				// für das einmalige hochzählen beim drücken eines knopfes
		{
		Msleep(100);
		zaehler = 0;
        }
		
      }
	  o--;
	  

}


 //Hauptprogramm 
int main(void)
{

    //Geschwindigkeit 
    //void int speed = 100;
   
    int speed = 100;
	
    Init();
	InitI2C();
    InitLCD();
    GREEN_LED_ON;

	while(o > 0)
	{
    PrintSetLCD(0,0,"Geschwindigkeit");
	SetCursorLCD(0, 1);
	PrintIntLCD(speed);
	start(speed);
	}
	MotorDir(FWD,FWD);
    MotorSpeed(speed,speed);
	  

return 0;
}
weshalb hat speed unten immernoch hundert obwohl ich den wert oben verändert habe?