PICuin
22.05.2011, 23:35
Hallo zusammen,
ich habe hier ein problem mit dem Low Voltage Detection, ich bin mir nicht sicher ob der unten aufgeführte Code stimmt. Der Microcontroller PIC18F4520 die Entwicklungsumgebung ist MicroC. Die Batterie hängt an RA5, falls die Spannung auf 4.11V fällt soll eine Led am RB3 aufleuchten.
Danke Vielmals.
//LOW VOLTAGE DETECTION
void InitLVD(){
ADCON1 = 0x00; //Analog I/O
TRISA.B5 = 1; //Port RA5 als Eingang
TRISB.B3 = 0; //Port RB3 als Ausgang
PORTB.B3 = 0;
HLVDCON.VDIRMAG = 0;
HLVDCON.HLVDEN = 1;
HLVDCON.IRVST = 0;
HLVDCON.HLVDL3 = 1; //1100 für 4.11V grenzwert
HLVDCON.HLVDL2 = 1;
HLVDCON.HLVDL1 = 0;
HLVDCON.HLVDL0 = 0;
INTCON.GIE = 1; //Globale Interrupt einschalten
INTCON.PEIE = 1; //
PIR2.HLVDIF = 0; //
PIE2.HLVDIE = 1; //
IPR2.HLVDIP = 1; //
}
void interrupt_LVD() iv 0x000008{
if(HLVDIE_bit == 1 && HLVDIF_bit == 1){
ADCON1 = 0x0F;
PORTB.B3 = ~PORTB.B3;
HLVDIF_bit = 0;
}
}
void main(){
InitLVD();
while(1);
}
ich habe hier ein problem mit dem Low Voltage Detection, ich bin mir nicht sicher ob der unten aufgeführte Code stimmt. Der Microcontroller PIC18F4520 die Entwicklungsumgebung ist MicroC. Die Batterie hängt an RA5, falls die Spannung auf 4.11V fällt soll eine Led am RB3 aufleuchten.
Danke Vielmals.
//LOW VOLTAGE DETECTION
void InitLVD(){
ADCON1 = 0x00; //Analog I/O
TRISA.B5 = 1; //Port RA5 als Eingang
TRISB.B3 = 0; //Port RB3 als Ausgang
PORTB.B3 = 0;
HLVDCON.VDIRMAG = 0;
HLVDCON.HLVDEN = 1;
HLVDCON.IRVST = 0;
HLVDCON.HLVDL3 = 1; //1100 für 4.11V grenzwert
HLVDCON.HLVDL2 = 1;
HLVDCON.HLVDL1 = 0;
HLVDCON.HLVDL0 = 0;
INTCON.GIE = 1; //Globale Interrupt einschalten
INTCON.PEIE = 1; //
PIR2.HLVDIF = 0; //
PIE2.HLVDIE = 1; //
IPR2.HLVDIP = 1; //
}
void interrupt_LVD() iv 0x000008{
if(HLVDIE_bit == 1 && HLVDIF_bit == 1){
ADCON1 = 0x0F;
PORTB.B3 = ~PORTB.B3;
HLVDIF_bit = 0;
}
}
void main(){
InitLVD();
while(1);
}