Ir ao conteúdo

Ajuda com pic e proteus


welsik

Posts recomendados

Postado

Olá,estou começando a programar em C e tenho um programa bem simples,mas não sei porque não esta funcionando.O codigo fonte :

#include<16f628a.h>

#use delay(clock=4000000)

#fuses NOWDT,PUT,NOBROWNOUT,NOMCLR,NOLVP,HS

Main()

{

int i;

for(i=0; i<50; i++);

{

output_high(PIN_B1);

delay_ms(300);

output_low(PIN_b1);

}

}

A minha ideia é que um led vai acender e apagar por 49 vezes,mas simulo isso no proteus e acende e apaga apenas uma vez....não sei o que acontece, se alguém puder me ajudar,ficaria muito grato.Obg pela atenção

Postado

Adicione um "delay_ms(300)" após o output_low. E, depois do loop adicione while(1);

No seu código ele fica em nível lógico 0 por alguns µS, por isso você não consgue visualizar. E o código, após término, retona para o começo, por isso adicione o loop infinito.

Postado

Main()

{

int i;

for(i=0; i<50; i++);

{

output_high(PIN_B1);

delay_ms(300);

output_low(PIN_b1);

}

}

A minha ideia é que um led vai acender e apagar por 49 vezes,mas simulo isso no proteus e acende e apaga apenas uma vez....não sei o que acontece, se alguém puder me ajudar,ficaria muito grato.Obg pela atenção

FACA O SEGUINTE:

main ()

{

while (1) // SE nao funcionar com 1 dentro coloca true

{

int aux;

for(aux=0; aux < 50; aux ++)

{

output_high(PIN_B1);

delay_ms(300);

output_low(PIN_B1);

delay_ms(300);

}

}

}

Postado

valeu pessoal pelas informações.Realmente faltou a rotina de delay_ms(300).Mas se eu colocar o e while(1) o led fica piscando sem parar...eu queria utilizar esse laço p ele parar quando a contagem chegar no final.obg

Postado
valeu pessoal pelas informações.Realmente faltou a rotina de delay_ms(300).Mas se eu colocar o e while(1) o led fica piscando sem parar...eu queria utilizar esse laço p ele parar quando a contagem chegar no final.obg

PRONTO AMIGO, COLOQUEI UM CONTATOR PARA TRAVAR EM UM SO LOOP

main ()

{

int cont;

cont=0;

while (1)

{

while (cont == 0)

{

{

int aux;

for(aux=0; aux < 50; aux ++)

{

output_high(PIN_B1);

delay_ms(300);

output_low(PIN_B1);

delay_ms(300);

}

cont++;

break;

}

}

}

}

Postado

Pessoal.Agradeço muito a colaboração de vocês,mas encontrei o erro,alem da falta do delay, deixei o ";" depois do for. Tirei e ele funcionou certinho agora.Valeu e brigadão pela ajuda

  • Coordenador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!