;********************************************************************* ; * ; PIC16C7X Tutorial 5: Watch Dog Reset Timer with Prescalor * ; * ;********************************************************************* ;* TARGET PIC16C7X ;********************************************************************* ;* @version 0.1, 14 October 2001 ;* @author James Caska ;********************************************************************* ;* ;* Runs on Processors without change ;* ;* PIC16c71 ;* PIC16c715 ;* ;********************************************************************* #include list p=16C71 DELAYCOUNTER EQU .32 ORG .0 START ;========================================== ;Autogenerated configuration code PIC16C7X ;Config Wiz V0.1, www.virtualbreadboard.com ;========================================== ;======Begin PORT Configuration BSF STATUS,RP0 ;Set Bank1 ;======PORT B MOVLW .0 ;PORTB Configuration Bits MOVWF TRISB BCF STATUS,RP0 ;Restore Bank0 CLRF PORTB GOTO WDT.Sleep Delay1msapprox MOVLW .255 MOVWF DELAYCOUNTER Delay1msapprox.loop NOP DECFSZ DELAYCOUNTER,F GOTO Delay1msapprox.loop RETLW .0 WDT.TimeOut ;========================================== ;Autogenerated configuration code PIC16C7X ;Config Wiz V0.1, www.virtualbreadboard.com ;========================================== ;======Begin Timer0 Configuration ;Timer0 Counter Mode, uses External clock source ;T0SE: TMR0 Source Edge Select bit: Increment on high-to-low transition on T0CKI pin ;Prescalor Assigned to Watchdog, Timer0 Prescalor = 1:1, WDT Prescalor = 1:2 MOVLW .57 BSF STATUS,RP0 ;Option is in Bank1 MOVWF OPTION_REG BCF STATUS,RP0 ;Restore Bank0 ;======End Timer0 Configuration WDT.TimeOut.doInc CALL Delay1msapprox ;Increment every ms approx INCF PORTB,F ;Should reach about 36(ms) at 1:2 prescalor before timingout GOTO WDT.TimeOut.doInc WDT.Sleep ;========================================== ;Autogenerated configuration code PIC16C7X ;Config Wiz V0.1, www.virtualbreadboard.com ;========================================== ;======Begin Timer0 Configuration ;Timer0 Counter Mode, uses External clock source ;T0SE: TMR0 Source Edge Select bit: Increment on high-to-low transition on T0CKI pin ;Prescalor Assigned Timer0, Timer0 Prescalor = 1:2 , Watchdog prescalor 1:1 MOVLW .48 BSF STATUS,RP0 ;Option is in Bank1 MOVWF OPTION_REG BCF STATUS,RP0 ;Restore Bank0 ;======End Timer0 Configuration MOVLW .255 MOVWF PORTB ;Write PORTB to switch all Pins on SLEEP ;Sleeps now until Watch Dog Timeout GOTO WDT.TimeOut END