Here is what I've got so far on a 12F675
Code:'defines DEFINE OSCCAL_1K 1 define OSC 4 DEFINE NO_CLRWDT 'end defines 'includes 'Include "Elapsed.bas" 'end includes ' Config Fuses @ __config _INTRC_OSC_NOCLKOUT & _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_ON & _PWRTE_ON & _WDT_ON ' Variable Definitions LED VAR GPIO.1 TEMPERATURE_CNT VAR WORD TEMPERATURE VAR WORD 'End Variable Defs ' Initialize INTCON=%10100000 CMCON=7 TRISIO=%11111101 ' Input 0,2,3,4,5 Output 1 ANSEL=0 'End Initialize ON INTERRUPT GOTO TMR: OPTION_REG.3=1 ; set WDT prescaler to 1:8 OPTION_REG.2=0 OPTION_REG.1=1 OPTION_REG.0=1 startup: LED=0 main: IF STATUS.4=0 THEN ;CHECKS TO SEE IF WDT TIMEOUT OCCURED TEMPERATURE = TEMPERATURE_CNT ;TEMPERATURE EQUALS COUNT VARIABLE TEMPERATURE_CNT=0 ;CLEARS COUNT VARIABLE @CLRWDT ;CLEARS STATUS.4 REG BACK TO 1 ENDIF IF TEMPERATURE>300 THEN LED=1 ;IF TEMPERATURE IS ABOVE A DETERMINED COUNT VARIABLE TURN ON LED ELSE LED=0 ENDIF GOTO MAIN DISABLE INTERRUPT TMR: ;INTERUPT OCCURS WHEN TMR0 ROLLS OVER TEMPERATURE_CNT=TEMPERATURE_CNT+1 ;INCREMENT COUNT VARIABLE INTCON=%10100000 ;CLEAR TMR0 INTERRUPT resume ENABLE INTERRUPT




Bookmarks