Gast
#24582
Hallo Ich bin PIC-Anfänger und wundere mich über meinen PIC16F84A. Dieser wiederholt ständig den Programmcode. Externe Resets liegen nicht vor. Der Watchdogtimer ist deaktiviert. Hier im Beispielprgramm soll ein Port nach einer Wartezeit eingeschaltet werden, kurz auf H bleiben und nach einer weiteren Wartezeit wieder ausgehen. Nur hört der PIC nicht nach einem Durchlauf des Programms auf, sondern wiederholt ständig die Anweisungen. Der Port wechselt also nicht nur einmal, sondern ständig. Hier der Programmcode: list p=16F84A include <p16f84a.inc> l1 equ 0x0C l2 equ 0x0D l3 equ 0x0E org 0x000 goto main wait movlw 0xFF movwf l1 movwf l2 movlw 0x07 movwf l3 wait_loop decfsz l1, f goto wait_loop decfsz l2, f goto wait_loop decfsz l3, f goto wait_loop return main bsf STATUS, RP0 clrf TRISB bcf STATUS, RP0 clrf PORTB call wait bsf PORTB,5 call wait bcf PORTB,5 end Die Wiederholung des Programms kann ich nur durch eine Marke vor "end" mit einer "goto"-Anweisung verhindern. Aber das kann doch nicht normal sein oder? Woran liegt es, dass der PIC alles wiederholt??