Hallo Zusammen

Ich möchte gerne wissen wie kompatibel der ATmega8 und der neuere ATmega168 ist. Also rein von der Pin-Belegung sind sie ja (bis auf die zusätzlichen Funktionen des ATmega16 kompatibal.
Ich habe nun das Problem, dass die 8kb Speicher des ATmega8 nicht ausreichen und ich daher etwas mehr benötige.
Wenn ich jedoch versuche den selben Programmcode (C-Code mit avr-gcc und avr-libc) zu kompilieren kriege ich einige Fehler (Register nicht bekannt, etc.),
Beim Blick ins Datanblatt stelle ich fest, dass einige Register und auch die Bits in den Registern neue Namen bekommen habe. Sind dies nur neue Namen und funktioniert die Hardware noch gleich, sodass ich den selben Code für das Ansprechen vom EEPROM, SPI, UART, Timer brauchen kann wie beim ATmega8 und nur die Namen (über den Präprozessor) in den Grif kriegen muss?

Vielen Dank für eure Hilfe.
cumi