Fiz o seguinte programa no mikroc:
- Código: Selecionar todos
/************ENTRADAS***********/
#define bt_ciclos (porta.f1)
#define bt_10s (porta.f2)
#define bt_20s (porta.f3)
#define bt_30s (porta.f4)
/*************SAÍDAS*********/
#define rele (portb.f7)
#define led1 (portb.f1)
#define led2 (portb.f0)
/********Configurações*******/
void configs()
{
cmcon=0x07;
option_reg=0x80;
intcon=0x00;
trisa=0x1E;
trisb=0x00;
portb=0;
}
int ciclos=0;
void main()
{
configs();
do
{
if(bt_ciclos==0)
{
ciclos++;
}
else if((bt_10s==0)&&(ciclos!=0))
{
while(ciclos!=0)
{
rele=1;
delay_ms(10000);
rele=0;
delay_ms(10000);
ciclos--;
}}
else if((bt_20s==0)&&(ciclos!=0))
{
while(ciclos!=0)
{
rele=1;
delay_ms(20000);
rele=0;
delay_ms(20000);
ciclos--;
}}
else if((bt_30s==0)&&(ciclos!=0))
{
while(ciclos!=0)
{
rele=1;
delay_ms(30000);
rele=0;
delay_ms(30000);
ciclos--;
}}
}while(1);
}
Porém ao pressionar 1x o bt_ciclos e depois pressionar o bt_10s ou bt_20s ou bt_30s ele fica executando infinitamente o processo.
O que será que eu fiz de errado?
vlw