einfachs Programme geht nicht, Portausgabe

Gast #1429601
Hallo zusammen...

ich bin gerade am verzweifeln.
Ich teste momentan ein Teil von einem großeren Projekt. Darin lese ich 
über die Pins PinC(4:1) werte ein die von einem BCD-Codierer kommen. Da 
mir dieser Schalter entweder die Pins auf GND schaltet oder sie in der 
luft hängen sind die Pull-ups aktiviert. Wenn ich mit dem Mulitmeter 
nachmesse passt auch alles.
Jetzt habe ich das programm soweit vereinfacht das ich die eingelesenen 
Pins mit kleiner verarbeitung einfach auf PortD ausgebe. aber da 
passiert nichts. Wenn ich PortD nachmesse ist alles auf GND.

Hier mal mein Quelltext. Ich hoffe mal um hilfe oder nützliche Tipps.

.include "m8def.inc"

//Stack initalisieren
ldi r16, LOW(RAMEND)
out SPL, r16
ldi r16, HIGH(RAMEND)
out SPH, r16

 //Ausgänge festlegen
ldi r16, 0x00
out DDRC, r16        //PortC ist ein Eingang
ldi r16, 0b00011110
out PortC, r16        //Pullupwiderstände aktivieren
ldi r16, 0xff
out DDRD, r16        //PortD ist ein Ausgang

//Register initialisieren
ldi r22, 0x00
ldi r16, 0x00

//################################################## start
start:

check_Baudrate:
in r20, PinC    //kompletten Pin-Port einlesen
lsr r20      //Register nach rechts verschieben

ldi r16, 0xFF  //Beginn Warteschleife, zur Softwareentprellung
loop_check_Baudrate1:
ldi r17, 0xFF
loop_check_Baudrate2:
dec r16
brne loop_check_Baudrate1
dec r17
brne loop_check_Baudrate2  //Ende Warteschleife


in r21, PinC  //kompletten Pin-Port einlesen
lsr r21    //Register nach rechts verschieben

cp r20, r21  //sind beide eingelesenen Werte identisch?
brne check_Baudrate  //wenn nicht nochmal einlesen

ldi r17, 0b00001111
and r20, r17    //wenn gelich, Register r20 formatieren

out PortD, r20    //Auf PortD ausgeben
rjmp start

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.