inverter 12/115v 400hz

ciao ragazzi
dopo un po' di lavoro sono riuscito a mandare il pin 13 a 400hz tramite timer1

vi sarei grato se deste un'occhiata soprattutto ai commenti visto che ho avuto difficoltà a scrivere anche quelli visto che il funzionamento mi è ancora un po' poco chiaro...

    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    
    void _exit(int status) {
    
    }
    
    
    int main(void)
    {
    
      DDRB = 0b00100000;                                // imposta pb5 pin 13 arduino come output
    
      OCR1A = 624;                                     // 2500micros @ 16mhz prescaler 64, 400hz
    
      TCCR1B |= (1 << WGM12);                           // comparazione con OCR1A
    
      TIMSK1 |= (1 << OCIE1A);                          //interrupt quando raggiunto OCR1A
    
      TCCR1B |= (1 << CS11) | (1 << CS10);              //prescaler 64
    
      sei();                                            //abilita interrupt
    
      while (1);
      {
    
        
      }
    
    }
    
    ISR (TIMER1_COMPA_vect)                            //interrupt su comparazione OCR1A
    {
    
    
      PORTB = PORTB ^ 0b00100000;                      //inverte stato pb5 pin 13 arduino
    
      
    }

altra cosa che non capisco è perchè senza il void_exit su gcc non compila mentre da ide arduino si...