Forum: Compiler & IDEs #define für Port Bits in <avr/io.h>


von Bertolt Mildner (Gast)


Lesenswert?

Gibt es eigentlich einen bestimmten Grund warum die #defines für
einzelne Port Bits, also z.B. PA0 bzw. PORTA0, bei verschiedenen AVRs
unterschiedliche Namen haben?

Warum nicht überall PA0 oder PORTA0 und nicht mal so und mal so??

von Joerg Wunsch (Gast)


Lesenswert?

Normalerweise sollte es so sein, wie's im Datenblatt steht.

Allerdings ist der Wert dieser Konstanten zweifelhaft: Du kannst
stattdessen getrost auch gleich die Nummer des Bits benutzen (also 3
statt PA3 oder PORTA3).

von Bertolt Mildner (Gast)


Lesenswert?

@Jörg:

>Allerdings ist der Wert dieser Konstanten zweifelhaft: Du kannst
>stattdessen getrost auch gleich die Nummer des Bits benutzen (also 3
>statt PA3 oder PORTA3).

Das ist mir schon klar, allerdings ist bei den #defines sofort klar
dass jetzt ein Port Bit gemeint ist.

>Normalerweise sollte es so sein, wie's im Datenblatt steht.

Mir ist es aufgefallen als ich Code den ich bis jetzt nur für Mega16
und Mega32 übersetzt hab, mal schnell auf nem Mega128 verwenden
wollte.
=> PA0 und co undefined ...

In den Datenblättern für Mega16/32/128 wird beides verwendet, meist
Px0-7 (Name des Port Pin), aber auch PORTx0-7 (das entsprechende Bit im
Data Register).

IMHO sollten aus kompatibilitäts Gründen immer beide Varianten
vorhanden sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.