hallo damaltor,
hallo alle anderen leser,

also an der stelle benutze ich die SerWrite, die macht das problem
die PrintInt (ab z. 140) die geht ohne probleme.

hier der ganze code
Code:
#include "asuro.h"
#include <string.h>
#include <math.h>


//prototypen
void Haus(int iStil, unsigned char iSpeed);
void MyTurn ( int winkel, unsigned char iSpeed);

int main(void)
{
  Init();
  Encoder_Init();
  //Senden von ICH beginne!

  SerWrite("\n\r",2);
  //        123456789012345678901234567890123456789012
  SerWrite("Hallo Chef, ich beginne mit dem Programm! ",42);
  SerWrite("\n\r",2); 
  SerWrite("Taster 1: Go 100",16);
  SerWrite("\n\r",2); 
  SerWrite("Taster 2: Turn 90",17);
  SerWrite("\n\r",2); 
  SerWrite("Taster 3: Haus1",15);
  SerWrite("\n\r",2); 
  SerWrite("Taster 4: Haus2",15);
  SerWrite("\n\r",2); 
  SerWrite("Taster 5: Haus3",15);
  SerWrite("\n\r",2); 
  SerWrite("Taster 6: Haus4",15);
  SerWrite("\n\r",2); 
  
  
  //in sw_pressed ist der gedrückte Schalter hinterlegt
  //dazu wird PollSwitch abgefragt  
  int sw_pressed;
  
  
  while (1) {
	
	//solange keine Taste gedrückt wird
	while((sw_pressed = PollSwitch()) == 0x00); 
    
	//korrektur für die großen Tasternummern
	if (sw_pressed >4) sw_pressed++;
	//Tastenabfrage
	switch(sw_pressed) {
		case 1: 
			//         1 234567890
			SerWrite("\n\rTaster 1", 10); 
			Go (100, 150);
			break;				  
		case 2: 
			//         1 234567890
			SerWrite("\n\rTaster 2", 10); 
			MyTurn (90, 150);
			break;	 
		case 4: 
			//         1 234567890123456
			SerWrite("\n\rTaster 4: Haus1", 17);
			//Haus(Größe-1..4,Speed)
			Haus(1,150); 
			break;			  
	    case 8:  
			//         1 234567890123456
			SerWrite("\n\rTaster 4: Haus2", 17);
			//Haus(Größe-1..4,Speed)
			Haus(2,150);
			break;		
		case 16:
			//         1 234567890123456
			SerWrite("\n\rTaster 4: Haus3", 17);
			//Haus(Größe-1..4,Speed)
			Haus(3,150);
			break;		
		case 32:
			//         1 234567890123456
			SerWrite("\n\rTaster 4: Haus4", 17);
			//Haus(Größe-1..4,Speed)
			Haus(4,150);
			break;		  } //end switch
	
	
	//mal 300 ms warten
	Msleep(300);
	sw_pressed=0;
	
} //end while (1)
  

// Nie vergessen, reine Vorsichtsmassnahme..
  while(1){}
  return 0;
} // end int main()


void Haus(int iStil, unsigned char iSpeed)
{
//Definition der Seitenlänge und Winkel (DEFAULT)
int iSeite=30;
int iWinkel_Dach1=45;
	switch(iStil) {
		case 1: 
			//         1 234567890
			SerWrite("\n\rForm 1", 8);
			iSeite=100;
			iWinkel_Dach1= 45;
			break;
		case 2: 
			//         1 234567890
			SerWrite("\n\rForm 2", 8);
			iSeite=150;
			iWinkel_Dach1= 45;
			break;
		case 3: 
			//         1 234567890
			SerWrite("\n\rForm 3", 8);
			iSeite=100;
			iWinkel_Dach1= 30;
			break;	
		case 4: 
			//         1 234567890
			SerWrite("\n\rForm 4", 8);
			iSeite=200;
			iWinkel_Dach1= 30;
			break;				
	} //end switch


float Diagonale=sqrt(2)*iSeite;
int iDiagonale= (int)Diagonale;

int iWinkel_Dach2= 2* (90-iWinkel_Dach1);
int iWinkel_Dach3= 90-iWinkel_Dach1;
int iDach=(iSeite/2)/cos(iWinkel_Dach1/180*3.1415926535);

SerWrite("\n\r",2);
//        12345678901234567890
SerWrite("Seite: ",7);
PrintInt(iSeite);
SerWrite("\n\r",2);
//SerWrite("Diagonale: ",12);
//PrintInt(Diagonale);
//SerWrite("\n\r",2);
SerWrite("int Diagonale: ",16);
PrintInt(iDiagonale);
SerWrite("\n\r",2);
SerWrite("Dach: ",6);
PrintInt(iDach);
SerWrite("\n\r",2);
SerWrite("Winkel1: ",9);
PrintInt(iWinkel_Dach1);
SerWrite("\n\r",2);
SerWrite("Winkel2: ",9);
PrintInt(iWinkel_Dach2);
SerWrite("\n\r",2);
SerWrite("Winkel3: ",9);
PrintInt(iWinkel_Dach3);
SerWrite("\n\r",2);

	//solange keine Taste gedrückt wird
	//         1 234567890123
	SerWrite("\n\rpress a key",13);
	SerWrite("\n\r",2);	
	while((PollSwitch()) == 0x00); 


// es geht los (Seite 1)
Go(iSeite, iSpeed);
// drehen und Dach (Seite 2)
MyTurn(iWinkel_Dach1, iSpeed);
Go(iDach, iSpeed);
// drehen und Dach (Seite 3)
MyTurn(iWinkel_Dach2, iSpeed);
Go(iDach, iSpeed);
// drehen und Seite 4
MyTurn((90-iWinkel_Dach1+90), iSpeed);
Go(iSeite,iSpeed);
//drehen und Seite 5
//Linksdrehung 45- 180
MyTurn(-135, iSpeed);
Go(iDiagonale,iSpeed);
//drehen und Seite 6
//Rechtsdrehung 90+45
MyTurn(135, iSpeed);
Go(iSeite,iSpeed);
//drehen und Seite 7
//Rechtdrehung
MyTurn(135, iSpeed);
Go(iDiagonale,iSpeed);
//drehen und Seite 8
//Rechtsdrehung
MyTurn(135, iSpeed);
Go(iSeite,iSpeed);


} //end Void (Haus)

void MyTurn ( int iWinkel, unsigned char iSpeed)
{
int iStep=1;
int iRest=0;
int iLauf=0;
	if (iWinkel>80)
	{
		iStep=iWinkel/60;
		iRest=iWinkel - iStep*60;
		for (iLauf; iLauf<iStep; iLauf++)
		{
			Turn(60,iSpeed);
		}
		Turn (iRest, iSpeed);
	} //endif (abs(winkel)>80)
	else
	{
		Turn(iWinkel, iSpeed);
	}
	
}
gruß
downad

edit:
so nachdem ich nun etwas rumgespielt und experimentiert habe...
Lösungs aber sehr ----SEHR unbefriedigend

unsigned char length =5;
unsigned char data[]="Hallo";
SerWrite(data,length);
dann geht die SerWrite


eine elegantere lösung wäre mir lieber.