Das könnte des Rätsels Lösung sein:3 mal oder 8 mal oder wieviel mal auch immer ein NOP reinzusetzen, kann es ja nicht sein. Es handelt sich um einen µC, der absolut logisch arbeitet und niemals Alzheimer bekommtCode:movf TRISC,0 iorlw 0x0C movwf TRISC ; Hier ist der Befehl zum Umschalten ... movf PORTC,0 ; ... der aber hier noch nicht fertig ausgeführt ist ! andlw 0x0C btfss _Z goto @Out ; Hier springst Du zur Routine ... call @Out ; ... und hier ruft Du sie als Unterprogramm auf ? ; ... Was steht am Ende der Routine: return ? movwf TRISC ; So sollte es funktionieren: Befehl zum Umschalten nop ; Hier kann die Richtung umgeschaltet werden movf PORTC,0 ; Hier ist die Richtung umgeschaltet
PS: Beim 16F87x z.B. sind die TRIS-Register in Bank 1. Da können die beiden Befehle für TRIS und PORT nicht direkt hintereinander stehen, dazwischen muß erst auf die Bank umgeschaltet werden. Bis dahin ist die Richtung umgeschaltet.







Zitieren

Lesezeichen