www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pins abfragen mit ICCAVR


Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute, kennt sich jemand mit ICCAVR von Imagecraft aus?
Meine Frage lautet: Wie kann man mit ICCAVR einzelne Pins eines Ports
abfragen, bzw setzen?

Beim C167 gab es die Befehle getbit() bzw -putbit(), gibt es so etwas
auch bei ICCAVR. Oder wie setzt ihr einzelene Bits?

Waere dankbar fuer eure Ratschlaege.

Vielen Dank
Ronny

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey , weiss niemand einen Rat?
Zumindest was das Lesen von Pins angeht.

Waere euch dankbar.
Gruss
Ronny

Autor: Rainer D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es gibt zwei möglichkeiten entweder per Makro oder Funktion.
Makros:
#define SEB(WO,BIT)(WO|=(1<<BIT))
#define CLB(WO,BIT)(WO&=~(1<<BIT))
#define CHKB(WO,BIT)(WO&(1<<BIT))
#define CHKBL(WO,BIT)(!(WO&(1<<BIT)))
WO entspricht z.B. PORTD oder der Portadresse somit gehts mit jedem
Compiler
BIT ist die zu lesende Bitnummer
wobei CHKB auf 1 prüft und CHKBL auf 0.....
CLB und SEB sind zum Löschen und Setzen einzelner Bits.
z.B.
if (CHKBL(PORTD,4))
{
//Anweisungen...wird ausgeführt sobald pin5 low ist
}

Diese haben den Vorteil das sie am Auftragsort in den Quellcode
eingefügt werden.
Die zweite möglichkeit ist diese Aufrufe in ne Funktion zu packen was
bei vielen Aufrufen den Quellcode erhebelich verkleinert allerdings auf
die Laufzeit geht. Diese ist in den meisten Fällen sowieso ausreichend
falls man keine sinnlosen Warteschleifen programmiert.

Ich entscheide immer abh. vom Projekt welche Art besser ist....

MfG
Rainer

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Vielen Dank für die Hilfe

Gruss Ronny

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.