Hallo zusammen, irgendwo in anliegendem Assemblercode stecken mindestens zwei Fehler, und ich finde sie einfach nicht. Ein PIC16F84 spricht einen ISD1016 (ich weiß, altes Zeug, aber davon habe ich halt noch einige rumliegen)an; das funktioniert auch soweit gut, weil der ISD alle drei Texte nacheinander fehlerlos plappert und dann wieder von vorne beginnt. Nun soll er aber den ersten Text erst aufsagen, wenn ich RB7 auf low setze (high ist er durch den internen pull-up). Den BTFSC-Befehl für RB7 ignoriert der PIC genauso wie den für RA4, der über einen 10kOhm auf high liegt. Ich kann die beiden Portbits auf Masse legen oder auch nicht, es macht keinen Unterschied. Es wäre nett, wenn sich die PIC-Profis den Code mal ansehen und mir verraten, wo mein Denkfehler steckt. Danke und viele Grüße Roland
Frank L. wrote:
> fein, hier ist der Beitrag genauso falsch...
..und wo ist er richtig?
...wenn RB7 0 ist, springst Du zum return. Bei 1 ruftst du Delay auf und landest dann beim return. GOTO START wird nicht erreicht. Immer dran denken: ein skip überspringt immer genau einen assemblerbefehl. BEDINGUNG1 BTFSC PORTB,7 CALL DELAY RETURN GOTO START Viele Grüße, McS
mcs wrote: > ...wenn RB7 0 ist, springst Du zum return. Bei 1 ruftst du Delay auf und > landest dann beim return. > > GOTO START wird nicht erreicht. > > Immer dran denken: ein skip überspringt immer genau einen > assemblerbefehl. danke für die Antwort. "DELAY" hatte ich bei RB7 nachträglich ohne wirklich zu überlegen eingefügt, nachdem alle meine zig Versuche fehlgeschlagen waren. Ursprünglich war's die gleiche Befehlsfolge wie später im Code für RA4. Leider ignoriert der PIC auch die BTFSC-Befehle, wenn "DELAY" entfernt ist und "START" erreicht wird. Auch wenn ich alles auf BTFSS umschreibe, werden diese Befehle nicht ausgeführt. Sehr seltsam....
holger wrote: > Du benutzt RETURN ohne ein CALL dafür zu haben. > Wohin willst du dann returnen? Danke, Holger, das war der springende Punkt. Ich hab' den Wald einfach nicht vor Bäumen gesehen. Jetzt spielt es, wie es soll.
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.