> Gibt es eigentlich irgendwo eine Beschreibung im Internet wo sowas
> steht?
Keine Ahnung.
> Ich habe einige C Bücher (u.a. Kernighan/Ritchie) aber da steht
> sowas nicht drin.
Im K&R (in der zweiten Auflage natürlich) sollte das schon beschrieben
stehen. Ich müsste zu Hause in meinem nachgucken, wo's genau steht.
> Außerdem suche ich noch einige Infos zu #define wie man
> z.B. aus
1 | #define port portd
|
2 | #define bit 5
|
3 | sbi (port, bit);
|
> folgendes machen kann:
Wüsste ich nichts, außer vielleicht einem Codegenerator (in einer
Scriptsprache wie Perl oder Python), der einem den vollen Satz davon
zusammenschreibt.
Mein Tip: schreib dir lieber einen HAL (hardware abstraction layer).
Eigentlich willst du doch sowieso nicht wirklich in der Kategorie
"Port und Pin" denken, sondern am Portpin hängt irgendetwas dran,
z. B. eine LED. Ein HAL wäre dann sowas wie:
1 | #define LED_PORT PORTD
|
2 | #define LED_DDR DDRD
|
3 | #define LED_PINNO 5
|
4 |
|
5 | #define LED_INIT() do { LED_DDR |= (1 << LED_PINNO); } while (0)
|
6 | #define LED_SET() do { LED_PORT |= (1 << LED_PINNO); } while (0)
|
7 | #define LED_CLR() do { LED_PORT &= ~(1 << LED_PINNO); } while (0)
|
Wenn jetzt deine LED mal ,,umziehen'' muss an einen anderen Pin oder
vielleicht statt vom Ausgang nach Masse von Vcc zum Ausgang geklemmt
wird, hast du nur noch eine Stelle, an der du was ändern musst.