Auswertung im Programm

Gast #8402
Lesenswert?

Hallo,

vielleicht kann mir einer helfen, ich möchte das das Program bei einem 
bestimmten Wert an Port D den Ausgang ansteuert. Mein Versuch war leider 
vergebens.

Vielen Dank





.include "4433def.inc"     ;bzw. 2333def.inc

         ldi r16, 0xFF
         out DDRB, r16     ;Port B durch Ausgabe von 0xFF ins
                           ;Richtungsregister DDRB als Ausgang 
konfigurieren
         ldi r16, 0x00
         out DDRD, r16     ;Port D durch Ausgabe von 0x00 ins
                           ;Richtungsregister DDRD als Eingang 
konfigurieren

  ldi r16, 0xFF

loop:



        if1:
    in r16, PORTD
    cpi r16, 3 ; compare immediate
    brne loop   ; branch if not equal
    ldi r16, 0xff
    out PORTB, r16


         rjmp loop         ;Sprung zu "loop:" -> Endlosschleife
Gast #8403
Lesenswert?

Hier der Teil mal richtig

loop:

    ;in r16, PORTD  ;Falsch!!! PORTD liest das DDR zurück
    in  r16, PIND   ;Abfrage aktueller Zustand PORTD
    cpi r16, 3 ; compare immediate D0 + D1 = H
    brne loop ; branch if not equal
    ldi r16, 0xff
    out PORTB, r16
    rjmp loop

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren