Ir ao conteúdo

Posts recomendados

Postado

Boa Tarde a todos.

Sou novato em PIC este é meu primeiro.

Estou precisando de uma ajuda, não tenho conseguido trocar o valor da variável state quando aperto o botão, dai não inicia a temporização conforme função opera(state).

Grato pela ajuda.

#include <12F675.h> 
#device ADC=10 
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
#use delay(clock=4000000) 
#define GP0 PIN_A0 
#define GP1 PIN_A1 
#define GP2 PIN_A2 
//#define GP3 PIN_A3 
//#define GP4 PIN_A4 
//#define GP5 PIN_A5 
int seg = 0;
int state = 0;

int relogio(){
   delay_ms(1000);
   seg++;
return(seg);
}

// FUNÇAO DE OPERAÇÃO
int opera(state){
   if (state == 0){
   output_low( GP0 ); //bomba 1 LOW
   output_low( GP1 ); //bomba 2 LOW
   }
   if (state == 1 && seg == 0){
   output_high( GP0 ); // liga LED
   }
   if (state == 1 && seg == 10){ // Verifica tempo pra desligar
   output_low( GP0 ); // bomba 1 LOW
   output_high( GP1 ); // bomba 2 HIGH
   } 
   if (state == 1 && seg == 20){ // Verifica tempo pra desligar
   output_low( GP1 ); // bomba 2 LOW
   }
   if (state == 1 && seg == 40){
   output_high( GP0 ); // bomba 1 HIGH
   output_low( GP1 ); //bomba 2 LOW
   seg = 0;
   }
return(state);   
}

void init() { 
set_tris_a( 0b11111100 ); // set GP0 e GP1 output, all other inputs 
setup_comparator( NC_NC_NC_NC ); // disable comparators 
setup_adc_ports( NO_ANALOGS ); // disable analog inputs 
setup_adc( ADC_OFF ); // disable A2D 
}

void main() { 
init(); 
//output_low( GP0 ); // set low
//output_low( GP1 ); // set low
   while(TRUE){
      opera(state);
      relogio();
         if (input(GP2)){
            if (state == 0){
            state = 1;
            seg = 0;
            opera(state);
            }
            if (state == 1){
            state = 0;
            opera(state);
            }
         }
   }
}

 

12f675.bmp

Sem Título-1.jpg

  • Membro VIP
Postado

melhor você dizer o que exatamente quer fazer. Não consegui ver referência à mudança nem atribuição do state. Por enquanto o vejo apenas em sua mente mas confesso que não consegui traduzir

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...