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
Gibt es für das Programm eine Möglichkeit diese Schleifen zur Softwareentprellung wieder zu verlassen?
asche auf mein haupt... hab das in der simulation immer auskommentiert weil ich halt net warten wollte... danke danke ;)
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.