Hallo, ich möchte ein einzelnes Portpin(ATMega162) ansteuern(setzen bzw. rücksetzen in der Art und Weise -> PINB_1=1; PINB_1=0;), jedoch habe ich leider noch keine Definition gefunden. Komischerweise funktioniert der Befehl sbi(PORTB,1) oder cbi(PORTB,1) bei mir nicht. Welche lib muss denn dabei eingebunden werden bzw.muss im Makefile etwas angepasst werden? Kann mir jemand weiterhelfen? Danke jga
<Glaskugel Modus> Du benutzt gcc. Hast die passenden HeEaderdateien eingebunden..... </Glaskugel Modus> Ein paar Infos mehr wären auch nicht schlecht ;-) Z.B. den Code hier posten. Dann könnte man evtl. helfen.
Hallo, ja ich benutze gcc. kannst du mir sagen welche headerdateien ich z.B. für sbi und cbi benötige? den code kann ich derzeit nicht posten, bin nicht zuhause:)- Danke jga
Ganz portabel ohne GCC-spezifische Makros:
1 | PORTB |= 0x01; /* Pin B.0 auf 0 setzen */ |
2 | PORTB &= ~(0x01); /* Pin B.0 auf 1 setzen */ |
Hmm... wrote:
> Ganz portabel ohne GCC-spezifische Makros:
1 | PORTB |= 0x01; /* Pin B.0 auf 0 setzen */ |
2 | PORTB &= ~(0x01); /* Pin B.0 auf 1 setzen */ |
In den Kommentaren sind 0 und 1 vertauscht.
hab vergessen, daß ich die zwei nibbles(0-3 und 4-7) seperat beschreiben möchte, daher ist der zugriff auf das einzelne portpin notwendig(also entfällt z.b. ein zugriff über PORTB |= 0x01;). ansonsten überschreib ich mir immer wieder das obere oder das untere nibble. welche möglichkeit besteht hier? jga
jga wrote: > hab vergessen, daß ich die zwei nibbles(0-3 und 4-7) seperat beschreiben > möchte, daher ist der zugriff auf das einzelne portpin notwendig(also > entfällt z.b. ein zugriff über PORTB |= 0x01;). ansonsten überschreib > ich mir immer wieder das obere oder das untere nibble. Du sollst den Artikel über Bitmanipulation, den ich oben schon mal verlinkt habe, auch lesen! Mit "PORTB |= 0x01;" bzw. "PORTB &= ~0x01;" wird gar nichts überschrieben, außer dem einen einzigen Bit mit der Nummer 0.
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.