Saudações hobbystas , tecnólogos e universitários ...
altas acobracias ,muito legal esse mig 29,

bacana...etc
ptou pelos AVRs , bacana sendo os pics e os AVRs são similarmente e igualmente precisos ambos , se bem que os AVRs tem mais possibildades de que um pic...
por enquanto fico no pic enquanto não estudo AVRs ... foi uma opção ,não por desfazer dos AVRs, é preciso conhecer um pouco mais de hardware e pouco livre
e não dependente de outrs hardwares se é que vc me entende , no arduino é como se tudo estivesse feito sei la´
fiz eletrônica digital e agora estou estudando programação de microcontroladores ,e prtendo entender os por menores passo a passo sem pressa...

algoritimo debouce
- Código: Selecionar todos
#include <16f84a.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,PUT
int8 x;
#INT_EXT
void trata_b0(void)
{
x++;
}
void main(void)
{
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
while(true)
{
if(x==3) // se x é igual a três
{
x=0; // x volta ao inicio
// e executa os pinos RA0
output_high(pin_a0);
delay_ms(500);
output_low(pin_a0);
delay_ms(500);
disable_interrupts(INT_EXT); // Eu desabilitei ho ! pensando que essa parte do if(x==3) seria desabilitada pra não afetar a segunda chamada ,essa if(==4) mas não chamou ela ,e so chama a if( x==3)
o que adianta ter uma interrupção se a pessoa tem que chamar a #INT_EXT um #INT_EXT dois #INT_EXT três ...
mais então ,igual na linguagem c/C++ você pode chamar quantas chamadas de funções você quiser
mais nessa #INT_EXT eu queria saber se pode usar apenas ela pra não ter que ficar usando a numero um numero dois numero três
numero quatro etc... apenas a #INT_EXT tentei chamar if(x==4) quando pensei que tinha desabilitado a if(x==3) pra poder chamar a if (x==4) não sei se da pra entender agora!! mais ta ai...
while(true)
{
if(x==4) // se x é igual a três
{
x=0; // x volta ao inicio
// e executa os pinos RA0
}
}
ALGORITIMO DEBOUNCE
Ocorre primeira interrupção quando o botao é apertado-> Realiza o que tem de ser feito na interrupção-> Desabilita a interrupção no pino que acabou de detectá-la-> Habilita timer0 para alguns milissegundos (tempo de debounce)-> Sai da interrupção-> Interrompe quando o timer0 estora-> Desabilita o timer0-> Habilita novamente interrupção do botão-> Ocorre segunda interrupção quando o botão é solto-> Desabilita a interrupção no pino que acabou de detectá-la-> Habilita timer0 para alguns milissegundos (tempo de debounce)-> Sai da interrupção-> Interrompe quando timer0 estora-> Desabilita timer0-> Habilita novamente interrupção do botão
xultz te enviei uma (Mensagem privada)
