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

Re: K42 and Timer Interrupts
Thanks for the explanation.
Ioannis - 28th April 2025, 19:28I misinterpreted these paragraphs. My understanding was to have ASYNC cleared and use Fosc/4.
Ioannis