@SprinterSB wo muss man das obige eingeben?
Habe nämlich ein ähnliches Problem, bei mir ist der Speicher des ATmega8 mit folgendem Code schon zu 47% voll:

Code:
#include <avr/io.h>
#ifndef F_CPU
/* Definiere F_CPU, wenn F_CPU nicht bereits vorher definiert 
   (z.B. durch Übergabe als Parameter zum Compiler innerhalb 
   des Makefiles). Zusätzlich Ausgabe einer Warnung, die auf die
   "nachträgliche" Definition hinweist */
#warning "F_CPU war noch nicht definiert, wird nun mit 1000000 definiert"
#define F_CPU 1000000     /* Quarz mit 1 Mhz */
#endif
#include <util/delay.h>     /* in älteren avr-libc Versionen <avr/delay.h> */ 

#define TEMPO 1800
#define TEMPO2 2000

int main (void)
{
  DDRC = 0xFF;
  int ba=0;
  int const _A[] = {0b00001, 0b10110, 0b10110, 0b00001};
  int const _H[] = {0b00000, 0b11011, 0b11011, 0b00000};
  int const _L[] = {0b00000, 0b01111, 0b01111, 0b01111};
  int const _O[] = {0b10001, 0b01110, 0b01110, 0b10001};
  void B (int bb[])
  {
    PORTC = bb[0];
	_delay_us(TEMPO);
	PORTC = bb[1];
	_delay_us(TEMPO);
	PORTC = bb[2];
	_delay_us(TEMPO);
	PORTC = bb[3];
	_delay_us(TEMPO);
	PORTC = 0b11111;
	_delay_us(TEMPO2);
	ba += 8;
  }
  while(1)
  {
    B(_H);
    B(_A);
	B(_L);
	B(_L);
	B(_O);
    _delay_ms(157 - ba);
	ba = 0;
  }
  return 0;
}