int t=1;
int obstaculo=0;
int sobrecarga=0;
int sensor=1;
int error=0;
float temperaturadi;
float temperatura=0;
float temp_max=30;
int16 corriente1;
int16 corriente;
int16 corriente_max=500; //corriente maxima es 1A
void leer_corriente(){
corriente1=read_adc();
corriente=((corriente1-512)*25); //cada unidad es 25mA
}
#int_TIMER2
void TIMER2_isr(void)
{
switch(t){
case 1:
set_adc_channel(1);
t++;
break;
case 2:
temperaturadi=read_adc();
temperatura=temperaturadi*(0.48875); // Pasa binario a °C
t++;
break;
case 3:
set_adc_channel(0);
t++;
break;
case 4:
leer_corriente();
t=1;
break;
}
output_toggle(pin_b1);
}
#int_TIMER1
void TIMER1_isr(void)
{
if(temperatura>=temp_max){
output_high(pin_b7);}
else{
output_low(pin_b7);}
if(sensor==1){
if(distancia<dist_max){
obstaculo=1;}
else{
obstaculo=0;}
if(corriente>corriente_max){
sobrecarga=1;
error=1;}
else{
sobrecarga=0;
}}
}
#int_TIMER0
void TIMER0_isr(void)
{
if(error==1){
r++;
if(r==15){
output_high(pin_a2);
r=0;}}
else{
output_low(pin_a2);}
}