Also einfach mit einem Blick ins Datenblatt ist es IMHO nicht getan.
Damit bekommt man vielleicht einen Vergleich der Hardware-Resourcen, aber ein Vergleich lässt sich daraus bestenfalls zwischen ATmega8 und ATmega32 ableiten, die in Instruktionssatz, Peripherie und Speicherarchitektur weitestgehend übereinstimmen. Der Vergleich ist natürlich nur dann sinnvoll, wenn man davon ausgeht, daß für die beiden die gleiche Entwicklungsumgebung zum Einsatz kommt.
Zwischen PIC und AVR ist so ein Vergleich eigentlich nur möglich, indem man ein Projekt oder Quellen hernimmt und sie auf beiden Architekturen umsetzt, und dann die Resultate hinsichtlich der interessierenden Parameter (Laufzeit, RAM- und Flashverbrauch, Entwicklungszeit, etc) vergleicht.
Ganz entscheidend zur Beantwortung der Frage ist auch, welche Entwicklungsumgebung man einsetzt/einsetzen möchte und wie gut man diese beherrscht, das gilt auch für die Programmierung "on the raw machine" (Assembler).
Daß Atmel mit IAR zusammengearbeitet hat ist in der heutigen Zeit ein Muss. Cores, bei deren Design nicht beachtet wurde, daß diese inzwischen praktisch nur noch in Hochsprache(n) geproggt werden, müssen einen empfindlichen Teil ihrer Leistung aufgrund dieses Kunstfehlers abgeben.
Das der AVR-Instruktionssatz im Hinblick auf C gestaltet wurde, bedeutet aber nicht, daß der Core C-Befehle abarbeiten könnte, sondern lediglich, daß Konstrukte, die von einem C-Compiler gerne erzeugt werden, knapper codiert werden können. Eine Anmerkung dazu findest du in Wikipedia: Atmel AVR.
Lesezeichen