www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik einfachs Programme geht nicht, Portausgabe


Autor: Nitro86 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es für das Programm eine Möglichkeit diese Schleifen zur 
Softwareentprellung wieder zu verlassen?

Autor: Nitro86 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
asche auf mein haupt...
hab das in der simulation immer auskommentiert weil ich halt net warten 
wollte...
danke danke ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.