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: Has anyone tried AI with PICBASIC
That's a great observation. Specifying 'PicBasic Pro 3' significantly narrows the AI's search space, reducing the risk of it blending in syntax from other similar BASIC languages.You've hit on a...
lester Today, 06:43