Zitat Zitat von radbruch
Diese defines stehen in der entsprechenden ioxxx.h im avr-Verzeichniss von WinAVR.
Genau das hatte ich auch erhofft/angenommen/vermutet/gedacht. ABER:
Für den *328* gibts im WinAVR-20090313 nur die iom328p.h, darin steht
#define PINB1 1 (und Sinngemässes).
Diese iom328p.h wird mittels meiner Codezeile #include <avr/io.h> eingebunden. Daher kommt natürlich, wenn ich die iom328p.h explizit einbinde, diese Fehlermeldung:
#error "Attempt to include more than one <avr/ioXXX.h> file."
Diese Fehlermeldung kommt natürlich auch, wenn ich die iox8.h einbinde (in der PB1 etc. definiert ist).

Dagegen läuft das Compilieren für den mega168 problemlos mit diesen drei libs:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>

Warum? Weil die io.h für den mega168 die iom168.h includiert in der die iomx8h includiert wird *ggggg*. So ein hübsches Gimmick um drei Ecken gibts leider in der iom328p.h nicht . Macht ja auch nix, ich bin ja draufgekommen. War zwar unerwartet, aber ansonsten nur ein bisschen Arbeit, sonst nix.

Fazit: Wer den mega328 verwendet und die Pinne in der bekannten Art PB1 und ähnlich deklarieren will, muss sich selbst drum kümmern.