Hi,
My microcontroller stops working within 24 hours. When i reset it, it works again for 24 hours.
I tried several things but i cannot see what i am doing wrong in the code.
Code:
DEVICE 16F628A ;Gebruik een 16F628A type
CONFIG HS_OSC, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
XTAL 20 ;Kristal van 20MHz
HSERIAL_BAUD = 2400 ' Set baud rate to 2400
HSERIAL_RCSTA = %10010000 ' Enable serial port and continuous receive
HSERIAL_TXSTA = %00100000 ' Enable transmit and asynchronous mode
HSERIAL_CLEAR = ON ' Optionally clear the buffer before receiving
PORTB_PULLUPS ON ;On-chip pull-up weerstanden actief
; 76543210
PORTA = %00000000 ;Alle niveaus van PORTA eerst laag maken
PORTB = %00000000 ;Alle niveaus van PORTB eerst laag maken
TRISA = %00000000 ;Alle PORTA poorten omschakelen als ingang
TRISB = %11111111 ; 1 = Input 0 = Output
;Logische constanten
SYMBOL K1 = PORTA.2
SYMBOL S1 = PORTB.7
SYMBOL S2 = PORTB.6
DIM SerData AS BYTE
DIM Opdracht AS BYTE
DIM S1_Status AS BIT
DIM S2_Status AS BIT
S1_Status = 0
S2_Status = 0
CLEAR ;Wis alle RAM geheugen
HSEROUT["Program Started"]
MainProgram:
WHILE 1 = 1 ;Oneindige lus
IF S1 = 0 THEN ;S1 is Ingedrukt
IF S1_Status = 1 THEN
HSEROUT["11"]
S1_Status = 0
ENDIF
ELSE
IF S1_Status = 0 THEN
HSEROUT["10"]
S1_Status = 1
ENDIF
ENDIF
IF S2 = 0 THEN ;S1 is gesloten.
IF S2_Status = 1 THEN
HSEROUT["21"]
S2_Status = 0
ENDIF
ELSE
IF S2_Status = 0 THEN
HSEROUT["20"]
S2_Status = 1
ENDIF
ENDIF
HSERIN 10, timeout,[DEC SerData]
SELECT SerData
CASE 10
LOW K1
CASE 11
HIGH K1
CASE 12
HIGH K1
DELAYMS 50
LOW K1
END SELECT
WEND
timeout:
GOTO MainProgram
END ;Einde programma
Who can help me ?
Bookmarks