Genau das hatte ich auch erhofft/angenommen/vermutet/gedacht. ABER:Zitat von radbruch
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.
Lesezeichen