Hallo zusammen,
da ich zu vergesslich bin, mir die Bits für ADPS[2:0], REFS[2:0] und
MUX[4:0] zu merken
und zu faul, sie jeweils in den Datenblättern nachzuschauen, hatte ich
die Idee, meine adc.h so aufzupeppen, dass diese Parameter
hardwareunabhängig (halb-)automatisch gesetzt werden.
So wollte ich z.B. für ADMUX einfach Bitmasken als ADC0 bis ADC11
#definieren.
Nun stelle ich fest, dass ADC0-ADC10 sowie PORTADC, PINADC und DDRADC
bereits in den hardware-spezifischen header-Dateien zugewiesen werden.
Z.B. in avr/iotn861a.h:
1 | #define PA0_DDR DDRADC
|
2 | #define PA0_PORT PORTADC
|
3 | #define PA0_PIN PINADC
|
4 | #define PA0_BIT ADC0
|
Dabei sind PORTADC, ADC0 usw. nirgendwo definiert, d.h. es werden nur
die Namen blockiert, aber es ist "nix drin".
Welchen Sinn hat das?
Kann mir einer von Euch Cracks das leicht verständlich erklären oder
ggfs. ein Anwendungsbeispiel geben?
P.S.: Betrifft avr-libc 1.8.0