Hallo, neues "Aufgabe", neues Problem. Wenn ich das richtig verstanden habe, schließe ich an beispielsweise PD1 einen Schalter an, und lese dann die komplette PD reige aus. Ich bekomme also ein Register mit 8 Bits gefüllt, in dem das 4. für mich interessant ist. Wenn ich jetzt den PC5 mit dem PD1 schalten will, kann ich also nicht die "Rohdaten" vom Eingang in den Ausgang schieben, weil ja sonst PC1 aktiviert wird. Also muss ich das 4. Bit an die Stelle des 2. Bits schieben oder? Grüße Sebastian
oder einfach nur prüfen, ob das 1.Bit (bei PD1) gesetzt ist und dementsprechend das 5.Bit (PC5) im PORTC setzen oder löschen. (Ich zähl überall von 0 an)
Wie kann ich sowas prüfen? Hast du irgend einen Link zu nem Tut das mich in die Richtung anlernt?
Hier: http://www.mikrocontroller.net/articles/AVR-Tutorial (siehe I/O-Grundlagen bzw. Logische Operationen) http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial (siehe 10.3) Kommt auf die Sprache an, die du verwendest.
yuhuu, mein AVR als Taster ;)
1 | .include "m8def.inc" |
2 | |
3 | ldi r16, 0xFF |
4 | out DDRC, r16 ;PortC als Ausgang definieren |
5 | |
6 | ldi r16, 0x00 |
7 | out DDRD, r16 ;PortD als Eingang definieren |
8 | |
9 | ldi r16, 0xFF ;PortC auf VCC |
10 | out PORTC, r16 |
11 | |
12 | schleife: |
13 | |
14 | sbic PIND, 2 ;nächsten Befehl überspringen wenn Bit 3 = 0 ist von PIND |
15 | sbi PORTC, 5 ;PORTC PC5 auf GND |
16 | |
17 | sbis PIND, 2 ;nächsten Befehl überspringen wenn Bit 3 = 0 ist von PIND |
18 | cbi PORTC, 5 ;PORTC PC5 auf GND |
19 | |
20 | rjmp schleife |
zwar ober-overkill aber naja ;) THX an euch ;)
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.