Fala galera,
Sou novo aqui no fórum, e também estou aprendendo programação faz pouco tempo..
To tentando programar o PIC 16f877a para trabalhar, utilizando o mesmo pino para entrada e saída...
Não consigo de jeito nenhum, alguém pode me ajudar ?
No momento meu codigo ta assim:
#define Botao button(&portc, 0, 50, 0)
#define led1 rc0_bit
bit flag, flagled;
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 100;
TRISC0_bit = 1; // RC0_bit como entrada
if ( Botao && flag == 0) {
flagled = 1; // seta flag do led
flag = 1; // seta flag do botao
} if ( !Botao && flag == 1) flag = 0; // reseta flag do botao
TRISC0_bit = 0; // RC0_bit como saida
}
}
void main() {
//TMR0
//Prescaler 1:64; Interrupt Time : 1,9968 ms ( f = 500Hz )
OPTION_REG = 0x85;
TMR0 = 100;
INTCON = 0xA0;
// *************************
TRISC0_bit = 0;
led1 = 0;
for (;;) {
if (flagled == 1) { // testa flagled
led1 = 1; // liga led
} else if ( flagled == 0 ) { // testa flagled
led1 = 0; // desliga led
}
}
}
Tags:
Oi GM, boa noite.
Recomendo a voce ler o tópico:
http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
Tenho uma pergunta:
Qual compilador e "IDE" voce está usando para compilar e gravar o PIC?
Rui
Opa, boa noite Rui
Faço os comandos no compilador mikroC, não faço a gravação no pic, somente simulo no ISIS
Obrigado pelo retorno =)
Eu não uso o mikroc nem o ISIS, eu uso o HiTech C,
mas vou tentar entender sua logica.
Se conseguir resolver, post aqui.
Uma pergunta. Porque voce está usando o recurso de interrupt do timer 0?
Rui
Bom, vi em uma apostila uma aplicação de utilizar o pino tanto para controlar o botão e tb liberar 5v para acender o led ..porem não faço ideia de como começar.
Minha ideia era manter o pino RC0 como saida para controlar o led e, utilizar o TMR0 para inverter o estado do pino para entrada e fazer a leitura do botão, após a leitura resetar o pino para saida. Imaginei que seria bom utilizar este recurso pela interrupt, pois usando a frequencia de 500Hz ficaria invisível para nós essa mudança no pino. Mas, estou aberto para sugestões.
Abraço =)
Olá,
Abaixo segue um tutorial para maximização de pinos de I/O no PIC usando o compilador CCS, mas o mais importante é que podemos facilmente adaptar o sistema para funcionar com qualquer compilador ou microcontrolador.
O tutorial foi retirado de uma apostila de Programação em C para PIC de Rinaldo Câmara Gonçalves da Labtools.
Cara muito obrigado, vou tentar resolver o problema com este tutorial.
Vou aproveitar e ler essa apostila =))
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por