Hi,
ich würde gerne mit Hilfe des Präprozessors eine Bitmaske berechnen. Und
zwar lege ich in einem Makro fest wie viele Pins ich benötige, z.B.:
In einem weiteren Makro lege ich nun fest, ab welchen Pin begonnen wird
z.B.
Konkret würde das jetzt bedeuten, dass ich Pins 2, 3, 4, 5 und 6
"benötige". Der Port spielt hier jetzt mal keine Rolle und wird in einem
weiteren Makro festgelegt.
Jetzt bräuchte ich ein Makro, welches mir eine dazu passende Bitmaske
erstellt, um z.B. die DDR Register zu setzen. Für das o.g. Beispiel
würde das jetzt lauten: 0b01111100.
Die mathematische "Formel" hierfür lautet:
1 | #define BIT_PATTERN ((2 ^ DIMENSION) - 1) << START
|
Leider ist allerdings der "^" Operator als XOR und nicht als Potenz
definiert. Ich bräuchte jetzt praktisch ein Potenzmakro für den
Präprozessor. Könnt ihr mir da weiterhelfen?
Vielen Dank!