Hallo. Ich habe ein Programm für den 16f628 geschrieben, das die Dioden abhängig von einem Schalter an RB0 schaltet oder eben nicht. Jetzt brennen keine LEDs am Anfang. Drücke ich ein bißchen auf dem PIC rum brennen alle oder ein paar nur - aber nicht entsprechend dem Muster. Woran kann das liegen ?
P.S.: Die Diodenbeschaltung ist im Code integriert....
P.S.:Code:list p=16F628 include "P16F628.INC" __CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC Hundert1 EQU 0x22 Hundert2 EQU 0x23 Zehn EQU 0x24 org 0x00 ;Hier startet der PIC goto Beginn ;Zum Hauptprogramm org 0x04 ;Interruptadresse BCF INTCON,INTE BCF INTCON,INTF ;An RB0 gab es keinen Interrupt BCF INTCON, GIE GOTO Entscheiden ;Fragen, ob der Schalter eingeschaltet ;oder ausgeschaltet ist Ein BCF STATUS, RP0 ;Bank0 aktivieren BCF STATUS,RP0 BCF PORTB,7 ;Gruene Diode deaktivieren BSF PORTA,2 ;Gelbe Diode aktivieren ;Record ein CALL EineSekunde ;Warten drei Sekunden CALL EineSekunde CALL EineSekunde ;Record aus CALL EineSekunde ;Warten eine Sekunde ;Pause ein CALL EineSekunde ;Warten eine Sekunde ;Pause aus BCF PORTA,2 ;Gelbe Diode deaktivieren BSF PORTA,4 ;Rote Diode aktivieren CALL EineSekunde ;Warten eine Sekunde ;Kanal ein CALL EineSekunde ;Warten eine Sekunde ;Kanal aus CALL EineSekunde ;Warten eine Sekunde ;Pause ein CALL EineSekunde ;Warten eine Sekunde ;Pause aus BSF INTCON,RBIE ;Portaenderungsinterrupt für RB0 aktivieren BSF INTCON,INTE ;Externen RB0 Interrupt aktivieren BSF INTCON, GIE ;Alle Interrupts aktivieren SLEEP ;Schlafen Aus ;Stop ein BCF STATUS, RP0 ;Bank0 aktivieren BCF STATUS,RP0 BCF PORTA,4 ;Rote Diode deaktivieren BSF PORTB,7 ;Gruene Diode aktivieren CALL EineSekunde CALL EineSekunde ;Stop aus BSF INTCON,RBIE ;Portaenderungsinterrupt für RB0 aktivieren BSF INTCON,INTE ;Externen RB0 Interrupt aktivieren BSF INTCON, GIE ;Alle Interrupts aktivieren SLEEP ;Schlafen Beginn BCF STATUS, RP0 ;Bank0 aktivieren BCF STATUS,RP0 BSF CMCON, CM0 ;Alles Digital BSF CMCON, CM1 BSF CMCON, CM2 BCF INTCON, GIE ;Alle Interrupts deaktivieren BSF STATUS,RP0 ;Bank1 aktivieren BSF TRISB,0 ;Pin RB0 ist Eingang CLRF TRISA BCF STATUS,RP0 CLRF PORTA CLRF PORTB bsf INTCON, RBIE bcf INTCON, RBIF ;RB Port hat sich nicht geändert bsf INTCON, GIE ;Alle Interrupts aktivieren Entscheiden BCF STATUS, RP0 ;Bank0 aktivieren BCF STATUS,RP0 BTFSS PORTB,0 ;Ist Bit 0 von PortB aktiviert ? GOTO Ein GOTO Aus EineSekunde MOVLW D'100' MOVWF Hundert1 Warte MOVLW D'100' MOVWF Hundert2 Wart MOVLW .10 MOVWF Zehn Los nop nop nop nop nop nop nop nop nop nop DECFSZ Zehn,F GOTO Los DECFSZ Hundert2,F GOTO Wart DECFSZ Hundert1,F GOTO Warte RETLW 0 end ;das Ende des Programms
1. Daß einige Bankänderungen nicht nötig sind, da ich bereits in der Bank bin, ist mir bekannt.
2. Kann man davon ausgehen, daß Success! und Verified! bei FPP auch wirklich für überprüften Erfolg stehen ?







Zitieren
Lesezeichen