Boa noite!

Estou com um problema novo no meu projeto, na semana passada vocês me ajudaram a resolver um problema mas agora apareceu um novo em relação quando chamo uma interrupção.

O caso é o seguinte as vezes quando chamo a interrupção no meu programa na volta dessa rotina ele foi programado para trazer um incremento de ++i, mas ele traz as vezes  2.

O que percebi que quando pressiono o botão do contador devagar ele não faz mas se pressiono rápido ele faz, já tentei de tudo mas não deu certo, segue o programa para analise do pessoal que manja.

http://pastebin.com/buG9Pakt

Exibições: 319

Responder esta

Respostas a este tópico

Então Carlos Kwiek na minha protoboard já tem esse sistema de debounce, o estranho e que parece que quando é chamado a interrupção ela faz dos ciclo dentro da interrupção e depois volta para  rotina do programa.

Bom dia Juliano,

Voce tem resistores de pull down acredito na protoboard, que deixam a entrada em nível baixo para que não exista disparos aleatórios,  já que se não tiver estes resistores as entradas ficariam sem um estado definido, assumindo um aleatório, ao estar no GND via resistor se evita isso.

Mas o que creio é creio que você deve implementar via software um debounce nos botões, para evitar que ao pressionar os mesmos se evite o efeito conhecido como bounce.

Existe até uma biblioteca para isso https://github.com/thomasfredericks/Bounce2

Leia isso estimo sera interessante para você e para o tópico:

http://blog.vidadesilicio.com.br/arduino/basico/botoes/

Abs.

Abs. 

Como fez o debounce por HW ?

Colocou um capacitor em paralelo com o botão ?

Eu fiz com capacitor em paralelo e outro com porta logica NOT também.

É estranho esse problema que esta dando.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço