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
hey , weiss niemand einen Rat? Zumindest was das Lesen von Pins angeht. Waere euch dankbar. Gruss Ronny
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.