Hallo zusammen,
habe mal eine Anfängerfrage:
In einem ersten Testprogramm möchte ich eine LED an PORTB1 einschalten.
Kann ich über eine define-Anweisung erreichen das ich nur schreiben
brauche
Z.B.
#define LED1 PB1
...
DDRB = 0x0F;
...
LED1 = 1; ???
Ich möchte einen anderen weg ausprobieren als PORTB |= (1<<PB1) zum
Beipsiel.
Ist das möglich bzw. macht das in euren Augen einen sinn?
Ingo schrieb:
> Ich möchte einen anderen weg ausprobieren als PORTB |= (1<<PB1) zum> Beipsiel.
Effektiv wird es immer darauf hinauslaufen müssen (und der Compiler
wird daraus den passenden SBI-Befehl basteln, wenn man ihn
optimieren lässt).
Wenn du nun Wert auf Portierbarkeit legst, kannst du sowas
schreiben:
1
#define GLUE(a, b) a##b
2
#define SET_(what, p, m) GLUE(what, p) |= (1 << (m))
3
#define CLR_(what, p, m) GLUE(what, p) &= ~(1 << (m))
technikus schrieb:
> warum nicht so ?
Weil du dann an mehr als einer Stelle ändern musst, wenn deine LED
demnächst nicht mehr an Port B sondern E klemmt.