You are on page 1of 3

CCS :: View topic - Low Voltage Detect interrupt http://www.ccsinfo.com/forum/viewtopic.php?

t=24577

FAQ Forum Help Official CCS Support Search Register

Profile Log in to check your private messages Log in

Low Voltage Detect interrupt

CCS Forum Index -> General CCS C Discussion

View previous topic :: View next topic

Author Message

RobS Low Voltage Detect interrupt


Posted: Wed Sep 28, 2005 4:52 pm

Joined: 29 Jan 2005 I'm using the PIC18LF870/18LF8722. CCS Ver 3.23. I want to use #int_lowvolt interrupt to write
Posts: 10
to internal EE when VDD falls below a certain value. Do any fuses need to be set? What is a
good way to set the LVDCON register bits?
thanks

PCM programmer Posted: Thu Sep 29, 2005 3:53 pm

Here is a Low Voltage Detect test program for the 18F452.


Joined: 06 Sep 2003
Posts: 6775 If you use a variable DC power supply which is initially set
at 5.0v, and you slowly reduce the voltage to 4.60v, at that
point you will get this displayed:
Quote:

Low voltage

Low voltage

Low voltage

Low voltage

Low voltage

When you adjust the voltage above 4.60v, the messages will stop.

Initially, I had some code to print "AAAAA" to let me know it was


running, but I didn't need that in the final version, so it's commented out.

Also note that for your PIC, you have the ability to trigger on "above"
or "below" the LVD voltage. An extra parameter may be used to
select this in the setup_low_voltage() function. See notes in code, below.
Code:
#include <18F452.h>
#fuses XT,NOWDT,PUT, BORV27,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)

#byte LVDCON = 0xFD2


#bit IRVST_BIT = LVDCON.5

#byte PIR2 = 0xFA1

1 от 3 01.3.2007 г. 09:53
CCS :: View topic - Low Voltage Detect interrupt http://www.ccsinfo.com/forum/viewtopic.php?t=24577

#bit LVDIF_BIT = PIR2.2

int8 lvd_flag;

#int_lowvolt
void lvd_isr(void)
{
lvd_flag = TRUE;
disable_interrupts(INT_LOWVOLT);
}

int8 wait_for_lvd_to_stabilize(void)
{
int16 timeout_count;

timeout_count = 0xFFFF; // Many milliseconds

while(timeout_count--)
{
if(IRVST_BIT)
return(TRUE);
}

return(FALSE);

//====================================
void main(void)
{
printf("Start\n\r");

setup_low_volt_detect(LVD_46);
//setup_low_volt_detect(LVD_46 | LVD_TRIGGER_BELOW); //For 18F8722

if(wait_for_lvd_to_stabilize() == FALSE)
{
printf("Low Voltage Detect module didn't stabilize\n\r");
while(1); // Wait here forever
}

LVDIF_BIT = 0; // Clear the LVD interrupt flag

enable_interrupts(INT_LOWVOLT);
enable_interrupts(GLOBAL);

while(1)
{
if(lvd_flag == TRUE)
{
printf("\n\rLow voltage\n\r");
lvd_flag = FALSE;
LVDIF_BIT = 0; // Clear the LVD interrupt flag
enable_interrupts(INT_LOWVOLT);
}
// delay_ms(500);
// printf("A");
}

Douglas Kennedy Posted: Fri Sep 30, 2005 10:15 am

Is setup_low_volt_detect ( ) a built in CCS function?


Joined: 07 Sep 2003
Posts: 366
Location: Florida

PCM programmer Posted: Fri Sep 30, 2005 10:27 am

Yes, it's in the current manual.


Joined: 06 Sep 2003
Posts: 6775

2 от 3 01.3.2007 г. 09:53
CCS :: View topic - Low Voltage Detect interrupt http://www.ccsinfo.com/forum/viewtopic.php?t=24577

Display posts from previous: All Posts Oldest First Go

All times are GMT - 6 Hours


CCS Forum Index -> General CCS C Discussion

Page 1 of 1

Jump to: General CCS C Discussion Go

You can post new topics in this forum


You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2001, 2005 phpBB Group

3 от 3 01.3.2007 г. 09:53

You might also like