Reset_AVR(); sembra scattare arbitrariamente ma comunque non fa il reset

È solo una riga da sostituire alla tua... Il resto non c'entra niente.