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)
{
}
}