hallo! ich bin uC-Neuling, weshalb ich nicht genau weiß was man in assembler darf und was nicht. als 1. prog mit 4051 von Atmel wollte ich einfach portpins setzen/löschen, sobald ein Eingangspin low wird.(assembliert mit ASEM51, lt. Dokumentation funkt. 89c2051.mcu auch für 4051) $NOMOD51 $INCLUDE (89c2051.mcu) mov P3,#11111111b mov P1,#11111100b main: Abfragen: jnb P3.0,forward forward: mov P1,#00000000b jmp Abfragen END das problem bei diesem prog ist, dass Port1 sofort auf 0 gesetzt wird,die Bedingung dass P3.0 low wird scheint nichts zu beeinflussen. wäre sehr dankbar wenn mir wer sagen könnte was da falsch programmiert ist.
Ist doch klar. forward: wird in jedem Fall durchlaufen. Lies mal im Datenblatt die Funktion des Befehls jnb nach.
Sprungziel ist falsch, du landest immer bei "forward". Ist die Bedingung erfüllt, springst du zu forward. Ist die Bedingung nicht erfüllt, wird der jnb ... ignoriert, und du landest auch bei forward.
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.