Hi,

ich hab zwar keine Ahnung ob das überhaupt noch im Programm steht (*sry grade zu müde um mehr zu lesen *)
aber ganz oben iss mir dashier aufgefallen:

Code:
void Delay_us(uint16_t Verzoegerung) 
{ 
   Zeit=0; 
   while(Zeit<=Verzoegerung); 
}
dabei iss aber, egal mit welchem parameter man die Funktion Delay_us aufruft dann sofort ewiger Stillstand

denn da Verzögerung nicht negativ sein kann (wies mit 0 iss weiss ich garned iss aber egal) MUSS sie immer >= 0 sein

das bedeutet soviel wie wenn du einfach while(1); hinschreibst


ich vermute das sollte eigentlich so aussehen:

Code:
void Delay_us(uint16_t Verzoegerung) 
{ 
   Zeit=0; 
   while(Zeit<=Verzoegerung)Zeit++; 
}
ach ja, dabei sit aber noch zu beachten, dass die funktion nicht soviele us wartet wie verzögerung groß ist, die takte eines µCs sind soweit ich weiss noch kleiner...

da diese art von delay eh blockierend ist, kann man auch gleich die delay.h oder wie die genau heißt hernehmen...


LG Pr0gm4n