Página 1 de 1
Button Library

Enviado:
01 Mai 2011 18:19
por Pask
Amigos, fiz o seguinte programinha no compilador MikroC Pro usando a sua biblioteca interna chamada "BUTTON" para acionar um simples botão que faz piscar todos os leds ligados ao PORTD do PIC. Ao usar tal função interna do compilador, ele já configura o pino em questão (RB0) como entrada para aceitar o comando do botão. Mas, o código não funcionou. Alguém saberia me explicar por que?
void main() {
trisd=0;
trisb.rb0=1;
portd=0;
while(1){
if (Button(&PORTB,0,0,10)){ / / esta função falhou!
portd=255;
delay_ms(200);
portd=0;
delay_ms(200); }
}
}
Re: Button Library

Enviado:
01 Mai 2011 19:29
por andre_luis
Sugestão :
Para saber se o problema é de firmware ou de Hardware substitua essa API por um simples "if (!RB0)" pra ver se ao menos a entrada RB0 está sendo sensibilizada.
+++

Enviado:
01 Mai 2011 21:11
por Pask
O problema já foi resolvido. Quem estava errado era eu...rsrsrsrs. O comando abaixo funciona assim:
if (Button(&PORTB,0,0,10))
&PORTB => Um pino do portb controlará o botão;
0 => O pino RB0 controlará o botão;
10 => Haverá um debounce (atraso) de 10ms no acionamento do botão;
0 => Quando o botão for pressionado, ele deverá jogar nível lógico 0 no pino RB0 do PIC.
O que estava errado então?
Eu inverti a sequência de comandos. O correto é assim:
if (Button(&PORTB,0,10,0))
Valeu.

Enviado:
01 Mai 2011 21:42
por Silvio51
Pask escreveu:(...)
&PORTB => Um pino do portb controlará o botão;
(...)
O único "dispositivo" que controlará o botão é o dedo de alguém... a não ser que teu micro esteja controlando um braço robótico que vai "pressionar"o botão... conserta isso aí...
ps: Desculpe... é que tenho T.O.C...