Forum: Mikrocontroller und Digitale Elektronik Atmega8 Eingang Ausgang Verständnis Problem


von Sebastian E. (musarati)


Lesenswert?

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

von Flo (Gast)


Lesenswert?

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)

von Sebastian E. (musarati)


Lesenswert?

Wie kann ich sowas prüfen?

Hast du irgend einen Link zu nem Tut das mich in die Richtung anlernt?

von Markus E. (engelmarkus)


Lesenswert?

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.

von Sebastian E. (musarati)


Lesenswert?

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
Noch kein Account? Hier anmelden.