pode me ajudar?
preciso fazer acender o led quando estiver com 90% da tensão de referência que no caso seria 2,5V
// --- Mapeamento de Hardware ---
#define led_g RB0_bit //Conecta o LED Verde à porta RB0
#define led_y RB1_bit //Conecta o LED Amarelo à porta RB1
#define led_r RB2_bit //Conecta o LED Vermelho à porta RB2
// --- Rotina de Interrupção ---
void interrupt()
{
if(CMIF_bit) //Houve mudança na saída de um dos comparadores?
{ //Sim...
CMIF_bit = 0x00; //Limpa a flag
if(C1OUT_bit) //Tensão acima de 2,5V?
{
led_g = 0x01;
led_r = 0x00;
led_y = 0x00; //Inverte o estado dos LED's
}
else if (!C1OUT_bit)
{
led_g = 0x00;
led_r = 0x01;
led_y = 0x00;
}
} //end CMIF
} //end interrupt
// --- Função Principal ---
void main()
{
CMCON = 0x02; //Configura comparadores com tensão de referência interna
VRCON = 0xAC; //Tensão de referência interna igual a 2,5V
OPTION_REG = 0x80; //Desabilita pull-ups , prescaler 1:2 associado ao Timer0
GIE_bit = 0x01; //Habilita interrupção global
PEIE_bit = 0x01; //Habilita interrupção por periféricos
CMIE_bit = 0x01; //Habilita interrupção dos comparadores
TRISA.RB0 = 0xFF; //Todo PORTA será entrada
TRISB.RB0 = 0x00; //Configura RB0 como saída
TRISB.RB1 = 0x00; //Configura RB1 como saída
TRISB.RB2 = 0x00; //Configura RB2 como saída
led_g = 0x00; //Saída inicia desligada
led_y = 0x00; //Saída inicia desligada
led_r = 0x00; //Saída inicia desligada
while(1) //Loop infinito
{
//Aguarda interrupção...
}
} //end main