Ir ao conteúdo
  • Cadastre-se

C PIC - quero fazer um laço finito que vá funcionar, não estou conseguindo


Posts recomendados

estou fazendo um codigo no pic 18f4620, com um cristal externo de 20MHz, o codigo abaixo esta funcionando corretamente, mas quando eu mudo de output_toggle para output_low o led apaga e não acende  mais, podem me ajudar para que ele execute esse comando apenas uma vez e depois saia do laço infinito?

 

#include <18f4620.h>
 

int contador = 0;
#INT_TIMER0
void interrupcao(){
  clear_interrupt(INT_TIMER0);
  contador++; 
  
  

}

void main()
{

   
   setup_timer_0(rtcc_internal | RTCC_DIV_64);
   set_timer0(0); 
   enable_interrupts(global);
   enable_interrupts(int_timer0);

   while(true){
     if(!input(pin_e1)){
      output_high(pin_d2);
      While(true){
        if(contador == 3){
            output_toggle(pin_d2);
            contador = 0;
           }
      } 
        }
     }

Link para o comentário
Compartilhar em outros sites

  • Rafael_angelo alterou o título para PIC - quero fazer um laço finito que vá funcionar, não estou conseguindo
  • Membro VIP
1 hora atrás, Rafael_angelo disse:

para que ele execute esse comando apenas uma vez e depois

... algo como

1 hora atrás, Rafael_angelo disse:

while(true){
     if(!input(pin_e1)){
      output_high(pin_d2);

     contador=0;
      While(contador<3);

       output_low(pin_d2);
       contador = 0;

 

Não sei o que exatamente quer fazer com este código mas ele é meio perturbador e tem margem pra melhorias.

..editei...😁

Link para o comentário
Compartilhar em outros sites

20 horas atrás, .if disse:

Não sei o que exatamente quer fazer com este código mas ele é meio perturbador e tem margem pra melhorias.

..editei...😁

hhaahahaha obrigado, o codigo eu to usando apenas para estudo do rtcc, é apenas para estudo esse codigo

@.if o codigo ainda não funcionou, led apenas acende e continua aceso

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Qual a frequência que programou seu timer? Talvez esteja alta d+. Ou sua entrada pin_e1 está acionada o tempo todo.

Em 22/06/2023 às 13:14, Rafael_angelo disse:

para estudo esse codigo

... considere ver os sinais com osciloscópio. Ou use simulador.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!