First, you need to setup a DT_INTS-18 interrupt for the HLVD module. You can find DT_INTS-18 version 3.4 here: http://www.picbasic.co.uk/forum/show...2826#post82826
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
;INT_Handler USB_Handler
INT_Handler HLVD_INT, _LowVolt, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
Then you need to insert this code in your main program loop to setup the use of the HLVD module.
' Set registers for using HLVD feature per section 24.2 of the 18F4550 data sheet
' Step 1-Disable the module by clearing HLVDCON.4
HLVDCON.4 = 0 ' Implement Step 1
' Step2 HLVD3:HLVDL0=1101 'Set the trip point at Vdd=4.33 vdc
' Step3 HLVDCON.7=0 'Set VDIRMAG=0 to detect low voltage transition
' Step4 HLVDCON.4=1 'Enable the HLVD module
HLVDCON = %00011101 'Implements Steps 2-4
' Clear the HLVDIF interrupt flag (PIR2<2>)
PIR2.2 = 0
LowVolt:
' Blink LED_RED 5X to indicate Low Battery voltage detected
For i = 0 to 4
HIGH LED_RED
Pause 500
LOW LED_RED
PAUSE 500
Next
@ INT_DISABLE HLVD_INT ; This statement very important, else code will lockup on exit
; from the ISR to main program.
' Resume Main Program
@ INT_RETURN
'------------------{ End of Interrupt Handlers }-------------------------
@ INT_ENABLE HLVD_INT ; enable HLVD interrupt



Menu

Re: Gathering chip temperature from PIC18F26K83
Okay, thanks Richard. I was really hoping to avoid assembly, but it is what it is.
rocket_troy Today, 04:50Troy