Ir ao conteúdo
  • Cadastre-se

problemas com o pic c compiler


Posts recomendados

Bom dia pessoal, estou fazendo a montagem de um circuito basicamente simples um timer para um chuveiro que sera apresentado como projeto, e não tenho muita experiencia com programação sou novo nessa area, bom segue seu funcionamento

seu funcionamento é o seguinte: o chuveiro ira ficar ligado por 10 segundos  quando ele for ligado ira acender um led verde quando a contagem chegar a 5 ira acender um led amarelo e quando chegar a 2 um led vermelho e acionar um buzzer avisando que o banho esta acabando, ate ae tudo bem fiz a programação usando o pic c compiler porém quando faço a emulação ele abre uma nova aba com o nome de string.h e nessa aba tem um erro, o problema é que como não compila não gera o arquivo .hex  para fazer a simulação no issis/proteus  

estou usando um pic 16f628a com oscilador externo 4MHZ, segue abaixo a programação:

#include<stdio.h> 
#include<16f628a.h>

#fuses xt
int main()
{
while (true)
{
output_high (Pin_RA3);
output_high(Pin_RB5);
delay_ms(5000);
output_low(Pin_RB5);
output_high(Pin_RB6);
delay_ms(3000);
output_low(Pin_RB6);
output_high(Pin_RB7);
delay_ms(2000);
output_high(Pin_RA2);
delay_ms(100);
output_low((pin_RA2);
output_low(Pin_RB7);
output_low(Pin_RA3);
}
return 0;
}

desde já agradeço pela ajuda

Link para o comentário
Compartilhar em outros sites

não entendo muito de pic mas você está seguro que necessita a biblioteca stdio.h nesse projeto? Essa biblioteca se encarrega de fazer a gestão da entrada e saída padrão entre outras coisas, mas não estou 100% seguro que seja necessária no seu programa. Prove remover a primeira linha a ver se funciona.

Outro problema que vejo é que seu programa cai em um laço infinito a causa do while(true). O programa nunca para, mas como falei, não conheço nada sobre programação de micro controladores porém o código é claro... com:
while (true)
{
output_high (Pin_RA3);
output_high(Pin_RB5);
delay_ms(5000);
output_low(Pin_RB5);
output_high(Pin_RB6);
delay_ms(3000);
output_low(Pin_RB6);
output_high(Pin_RB7);
delay_ms(2000);
output_high(Pin_RA2);
delay_ms(100);
output_low((pin_RA2);
output_low(Pin_RB7);
output_low(Pin_RA3);
}

... você está repetindo infinitamente:
output_high (Pin_RA3);
output_high(Pin_RB5);
delay_ms(5000);
output_low(Pin_RB5);
output_high(Pin_RB6);
delay_ms(3000);
output_low(Pin_RB6);
output_high(Pin_RB7);
delay_ms(2000);
output_high(Pin_RA2);
delay_ms(100);
output_low((pin_RA2);
output_low(Pin_RB7);
output_low(Pin_RA3);

Ou seja... sua ducha vai dar vários banhos de 10 segundos >_<

Link para o comentário
Compartilhar em outros sites

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!