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.


Code:
//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);
}