www.mikrocontroller.net

Forum: Compiler & IDEs Bit macros in ioxxxx.h


Autor: Steffen Graap (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Warum werden die Bit macros in ioxxx.h in folgender Form
#define INT0   0
#define INT1   1
#define INT2   2
und nicht in dieser Form geschrieben?
#define INT0   0x01
#define INT1   0x02
#define INT2   0x04
oder
#define INT0   (1 << 0)
#define INT1   (1 << 1)
#define INT2   (1 << 2)

Bei der ersten Variante muss ich bei jeder Benutzung das Schieben (1<< ) 
davor schreiben, bei mehreren Bits sogar mehrfach. Das macht das 
schreiben umständlich und übersichtlicher wird es auch nicht.

Mit generften Grüßen
Steffen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nichts und niemand hindert dich daran aus den gegebenen
defines mit ein paar zusätzlichen Makros die Werte zu erzeugen,
die du haben willst. (*)
Aber der umgekehrte Weg, aus dem Portwert abzuleiten
welches Bit gesetzt ist, ist viel aufwändiger.


(*) zb so
#define BIT0  ( 1 << PB0 )
#define BIT1  ( 1 << PB1 )
#define BIT2  ( 1 << PB2 )
#define BIT3  ( 1 << PB3 )
#define BIT4  ( 1 << PB4 )
#define BIT5  ( 1 << PB5 )
#define BIT6  ( 1 << PB6 )
#define BIT7  ( 1 << PB7 )

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Header sind dazu gedacht, auch mit Assembler benutzt zu werden. Da 
gibt es aber durchaus auch Instruktionen, die nicht die Wertigkeit des 
Bits wollen, sondern dessen Nummer.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.