Bisschen träge dieser Thread, dann werd ich mal meinen Senf dazu geben.

Also: den Vorschlag mit der Statemachine finde ich in deinem Fall am günstigsten. Du hast keine Zeitkritischen Dinge zu erledigen und extra AVRX zu verwenden finde ich da übertrieben.

Ich versuche mal Deinen code einfach mal was mit ein paar Kommentaren in eine Statemachine zu übersetzen
Code:


char SignalTimeIstUp=0;   // soll nach 1000ms im Interrupt gesetzt werden

ISR (TIMER0_COMP_vect) 
{
    // irgendwie immer nach 1000ms setzen, könnte auch einmal/ms sein und dann ein Zähler sein der bis 1000 zählt,
	// dann könnte man auch kleinere Wartezeiten wie die 30ms realisieren
    SignalTimeIstUp=1;
}


// die Zeitroutine (ist nur ein Beispiel geht auch schöner)
char  Time_is_over(void)
{
    if( SignalTimeIstUp )
	{
	    // Zeit ist um, Signal zurücksetzen
	    SignalTimeIstUp=0;
		return 1;         
	}
    return 0;  // Zeit ist noch nicht um
}





int main()
{
     //  Init alles was du brauchst


    char ZustandLCD=0;  // Zustand der Statemachine
    char SignalAusgabe=0;  // Eventhändler zum steuern des Ablaufs!!! 

    while(1)
    {
	    // Statemachine LCD
        switch(ZustandLCD)
		{
		    case 0:
			    if( Time_is_over() )
				{
				    lcd_clear();
                    lcd_pos(2,0);
                    lcd_text("Step 1!"); 
					ZustandLCD=1;
				};				
				break;
			
			case 1:  // wieder warten bis 1000ms abgelaufen
			    if( Time_is_over() )
				{
					SignalAusgabe=1;
					ZustandLCD=2;
				};
				break;
				
			case 2:
			    if( Time_is_over() )
				{
			        lcd_pos(2,0);
                    lcd_text("Step 2!"); 
					ZustandLCD=3;
				};
				break;
				
			case 3:
			    if( Time_is_over() )
				{
			        LCD_Ausg(); // da in LCD_Ausg noch gewartet wird könnte man diesen in verschiede Zustände (States) aufteilen
					ZustandLCD=0; // wieder vorne anfangen
				};
				break;
		}
		
		// Blinken
		
		// hier bitte blinken je nach SignalAusgabe und Zeitpunkt, dies könnte auch eine weitere Statemachine sein
		
    
    }
}