Ir ao conteúdo
  • Cadastre-se

Setar Pino do PIC em Nível lógico alto enquanto Push-button estiver pressionado - CCS


aender

Posts recomendados

Pessoal tudo bem ?

Estou com uma dúvida em relação ao código no CCS para detectar evento de um Push-button .O que quero fazer é bem simples, é colocar um determinado pino de um Microcontrolador em nível alto enquanto o botão estiver pressionado, quando o botão for solto o estado do pino volta a ser 0, tipo, ligar um led por exemplo, enquanto o botão estiver pressionado, quando o botão for solto o Led desliga .Não sei como fazer isso no CCS, e agradeço a ajuda de todos , a simulação vai serfeita no Proteus.Abraço.

Link para o comentário
Compartilhar em outros sites

voce não sabe,porque voce não tem conhecimento do funcionamento de um microcontrolador e sua programação,pois isso não depende de compilador, certo?

acho que para te ajudar,é melhor nos dizer o que voce sabe.

Desculpe mas sobre sua citação "voce não sabe,porque voce não tem conhecimento do funcionamento de um microcontrolador " ,creio que quando um usuário do fórum posta uma dúvida, por mais ridícula que seja é porque está encontrando difilculdades, que para os mais experientes talvez não sejam tão grandes assim .O propósito do fórum é de compartilhar informação e ajudar ; portanto, uma resposta como a sua, na minha opinião não é muito bacana .Bom, em relação à outra questão, nesse caso depende do compilador sim, se você está informado sobre o assunto vai saber que as biliotecas do Compilador mikroC por exemplo, são diferentes do CCS, isso faz com que certas funções como manipulação de enventos de um Push-button ou Gerar PWM sejam diferentes de um compilador para outro.

Mesmo assim obrigado pela sua colaboração.

Link para o comentário
Compartilhar em outros sites

Notou que depois do meu post,voce voltou com bastante informação de sua dúvida,inclusive citando PWM (que é muito mais complexo que um botão)e mais um compilador de exemplo?

Agora a sua questão esta formada e sabemos uma parte de seu conhecimento...

Manipular botões não depende de blibioteca,o CCS e outros tem exemplos na mesma pasta do compilador.

Aguarde que aqui no fórum tem vários usuários do CCS que podem lhe auxiliar.

PS:Aproveitando,voce poderia postar um esboço mínimo ,em C ,de como pretende montar o programa.

Link para o comentário
Compartilhar em outros sites

Pegue um pino do pic para leitura, coloque um push button ligado no GND e ligue a outra ponta na porta de entrada.

igual a esse: http://www.engscope.com/wp-content/uploads/2009/02/switch-circuit.png

o probe vai pro pic, e o resistor de 20k é um de 10k... pode usar o de 20, eu uso sempre 10.

e nessa mesma porta de entrada ponha um resistor de 10k ligado ao positivo...

assim tu terás uma lógica inversa. (podes inverter também.)

if(!input(PIN_Ax)) // verifica se o pino não está ligado (lógica reversa)

{

output_high(PIN_Dx); // coloca o pino em estado alto

}

else

{

output_low(PIN_Dx); // coloca o pino em estado baixo

}

dai tu ve o estado da porta de entrada, e com o comando output_high ou output_low respectivamente para alto e baixo!

ahhh! não esquece de dizer quais pinos serão para entrada e quais serão para a saída!!!

no manual do ccs, procura por: set_tris_X, aí vai explicar como funciona o sistema de pinos (cada bit representa uma porta)

ex: set_tris_a(0x0F);

aonde: A0, A1, A2 e A3 serão entrada, e A4, A5, A6 e A7 saída! (não lembro se tá ao contrário! da uma checada no manuel! hahaha)

abraço!

Link para o comentário
Compartilhar em outros sites

Pegue um pino do pic para leitura, coloque um push button ligado no GND e ligue a outra ponta na porta de entrada.

igual a esse: http://www.engscope.com/wp-content/uploads/2009/02/switch-circuit.png

o probe vai pro pic, e o resistor de 20k é um de 10k... pode usar o de 20, eu uso sempre 10.

e nessa mesma porta de entrada ponha um resistor de 10k ligado ao positivo...

assim tu terás uma lógica inversa. (podes inverter também.)

if(!input(PIN_Ax)) // verifica se o pino não está ligado (lógica reversa)

{

output_high(PIN_Dx); // coloca o pino em estado alto

}

else

{

output_low(PIN_Dx); // coloca o pino em estado baixo

}

dai tu ve o estado da porta de entrada, e com o comando output_high ou output_low respectivamente para alto e baixo!

ahhh! não esquece de dizer quais pinos serão para entrada e quais serão para a saída!!!

no manual do ccs, procura por: set_tris_X, aí vai explicar como funciona o sistema de pinos (cada bit representa uma porta)

ex: set_tris_a(0x0F);

aonde: A0, A1, A2 e A3 serão entrada, e A4, A5, A6 e A7 saída! (não lembro se tá ao contrário! da uma checada no manuel! hahaha)

abraço!

mauricioscotton, valeu Brother, funcionou beleza, só foi necessário fazer algumas modificações bem simples no código.Já compilei e simulei no Proteus e está tudo Ok, meu objetivo é usar esses botões para acionar PWM em um pino específico e controlar um motor, mas fiz um esquema com Leds só para testar.

Segue o código :



//Programa CCS PIC16F628A: Acionar dois Leds enquanto botão estiver pressionado

//Programa Principal
void main()
{

while (TRUE) //Inicio loop
{
if(!input(PIN_a0)) // Pino entrada ,verifica se o pino não está ligado (lógica reversa)
{
output_low(PIN_b0); //Pino saída, coloca o pino em estado baixo
}
else
{
output_high(PIN_b0); // Pino saída ,coloca o pino em estado alto
}
if(!input(PIN_a1)) // Pino entrada ,verifica se o pino não está ligado (lógica reversa)
{
output_low(PIN_b1); //Pino saída, coloca o pino em estado baixo
}
else
{
output_high(PIN_b1); // Pino saída, coloca o pino em estado alto
}

}//Fim while

}//Fim Programa principal

Segue também, o link http://www.4shared.com/rar/793yvr-b/Pisca_Led.html para baixar todos os arquivos : Proteus + .hex + código, caso alguém tenha a mesma dúvida que eu.

Obrigado por compartilhar seu conhecimento ,valeu mesmo.Abraço att.

post-831556-13884962398235_thumb.jpg

Link para o comentário
Compartilhar em outros sites

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!