//Programa de control de espejos y ventanillas
//Autor: Ayasystems 06/05/07
#include <12C508.h>
#fuses INTRC,NOWDT,NOPROTECT, NOMCLR
#use delay(clock=4000000)
#define GP0 PIN_B0 //Relé sacar espejos
#define GP1 PIN_B1 //Relé meter espejos
#define GP2 PIN_B2 //Pulso cierre
#define GP3 PIN_B3 //Pulso apertura
#define GP4 PIN_B4
#define GP5 PIN_B5
void MirrorIn(void){
output_high(GP1);
delay_ms(4000); //Esperamos 4 seg. a que se metan
output_low(GP1);
}
void MirrorOut(void){
output_high(GP0);
delay_ms(4000); //Esperamos 4 seg. a que salgan
output_low(GP0);
}
main() {
char primer_pulso = 0;
char segundo_pulso = 0;
char contador = 0;
output_low(GP0);
output_low(GP1);
output_low(GP2);
output_low(GP4);
while (TRUE){
contador = 0;
if (input(GP2)){//pulsado cierre
//Detectar si han pulsado dos veces en menos de dos segundos
while (contador<25000){//Calcular el valor para que esté un segundo dando vueltas al While
if (input(GP2)){
segundo_pulso = 1;
}//if input(GP2)
}//fin while
if (segundo_pulso = 1){
MirrorIn();//Metemos los espejos
}//if segundo_pulso
}//if input(GP2)
if (input(GP3)){//pulsado abrrir
//Detectar si han pulsado dos veces en menos de dos segundos
while (contador<25000){//Calcular el valor para que esté un segundo dando vueltas al While
if (input(GP3)){
segundo_pulso = 1;
}//if input(GP3)
} //fin while
if (segundo_pulso = 1){
MirrorOut();//Sacamos los espejos
}//segundo_pulso
}//input(GP3)
}//while TRUE Bulce infinito
}//main