INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor eloyfm » 05 Jun 2017 20:48

Ola pessoal..
Eu tenho que fazer um programinha que de um pulso em um led a casa segundo com o 12F629 . Isso deve ser colocado em duas peças. com a interrupção externa preciso sincronizar as duas peças . Eu consegui fazer funcionar muito bem dando o pulso negativo. Mas não segui fazer isso com o pulso positivo. Aparentemente parece facil e até funciona no proteus, mas no hardware não.. Eu vejo o pulso positivo com 5V e o controlador não reage.. Abaixo o programinha
note que ele faz o pulso , quando termina ele transforma o GPIO2 em saida e da um pulso, logo volta o GPIO em entrada e fica esperando algum pulso. Quando ocorre a interrupção ele volta o programa para o inicio.. Quando conecta duas peças ou varias elas se sincronizam.

cpp code
#include <12F629.h> 
#fuses INTRC_IO, NOWDT, NOMCLR, PUT, BROWNOUT
#use delay(clock=8000000)

//#define chave PIN_A2 /// gpio 2

#use fast_io(A)

int conta=0;
int chave;

#INT_EXT
void chave()
{

delay_ms(230);
conta=26;
}

#int_timer0
void timer0 (void)
{

conta++;
if (conta>=26)
{

output_high(PIN_A5);
delay_ms(300);
output_low(PIN_A5);
delay_ms(390);

conta=0;
if(conta == 0 )
{
set_tris_a(0b00000000);
output_high (pin_a2);
delay_ms(10);
output_low (pin_a2);
set_tris_a(0b00000100);
}

}

set_timer0(3);

}



void main()
{
set_tris_a(0b00000100);
output_a(0b00000000);

ext_int_edge(1,L_TO_H);
clear_interrupt(INT_EXT);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
setup_timer_0(rtcc_internal|rtcc_div_256);
set_timer0(3);
enable_interrupts(int_timer0);

while (true)
{

}

}
eloyfm
Bit
 
Mensagens: 37
Registrado em: 03 Jul 2014 14:29

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor Fervolt » 06 Jun 2017 06:31

colocou um resistor de pull-down no pino da interrupção externa?
Caso não saiba, ligue um resistor de 10k entre o pino da interrupção e GND.

Att

Sent from my SM-G925I using Tapatalk
Fervolt
Bit
 
Mensagens: 17
Registrado em: 18 Abr 2014 11:40

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor eloyfm » 06 Jun 2017 15:41

Incrivelmente a coisa é bem estranha, mas talvez explicando alguém já me ajude identificar. Eu alimento o 12F629 com 12V e logo com um LM78L05.. Quando ele esta configurado para pulso negativo na INT_EXT funciona bem. Ocorre que eu precisei mudar para INT_EXT positivo.. Então coloquei um Pull-Down de 10K . Aplico pulso positivo nele de +5V e até já tentei colocar um Zener de 5,1V com um resitor para baixar a corrente e aplicar +12V, fazendo que termine em +5V no GPIO2.. Entrada do INT_EXT.. Ele não lê o pulso positivo nem a pal.. Aí o mais interessante é que se eu toco ele nos +5V mesmo do pino 1 do 12F629 ele tambem não lê, mas se eu toco em outro GPIO que uso com Pull_up ou MCLR.. eu vejo no osciloscópio que ele recebe somente 2,5V mas mesmo assim ele lê o pulso positivo.. Ou seja.. Se eu encosto ele em qualquer outro GPIO com PUL-UP de 10K ele lê o Pulso e faz a INT_EXT.. Eu já tentei de tudo mas não vai de jeito nenhum.. Até direto sem nenhum resistor ele não funciona.. e veja que eu coloco o TRISA em 1 (0b00000100) como entrada para esperar o pulso positivo.... certamente não vou desistir, mas espero conseguir esse ano ainda.. kkkk.. Obrigado...
eloyfm
Bit
 
Mensagens: 37
Registrado em: 03 Jul 2014 14:29

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor andre_luis » 07 Jun 2017 08:01

Independente de qualquer analise mais profunda da causa real desse problema, nesse código aí há algumas praticas não recomendadas, como utilização de delay em loop fechado dentro do vetor da interrução.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor eloyfm » 08 Jun 2017 11:37

Certamente o codigo tem muito que acertar, mas minha maior duvida é o problema que nao aparece numa simulação. Tudop funcionou bem, mas no real world a coisa não vai com o positivo.. Já no negativo tudo bem... Como pode o IO receber os +5V positivo da mesma fonte do PIC e não reconhecer como interrupção de entrada ?
eloyfm
Bit
 
Mensagens: 37
Registrado em: 03 Jul 2014 14:29

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor andre_luis » 08 Jun 2017 13:48

Por "funcionar-na-simulação" voce quer dizer que a fez por exemplo num Proteus da vida ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: INTERR. EXTERNA N FUNCIONA NIVAL ALTO PIC12F629

Mensagempor eloyfm » 14 Jun 2017 13:20

Sim. Num proteus da vida. Com pulso negativo sempre funcionou perfeitamente. O problema é conseguir funcionar com o pulso positivo.
eloyfm
Bit
 
Mensagens: 37
Registrado em: 03 Jul 2014 14:29


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x