Buenas, encontré un programa el cual hace un desborde del timer0 cada 8ms.
Para mi propósito lo necesito que se desborde cada 10ms.
Agradecería que me ayudaran a lograr mi objetivo explicándome como lo puedo hacer.
Aquí el programa:
Para mi propósito lo necesito que se desborde cada 10ms.
Agradecería que me ayudaran a lograr mi objetivo explicándome como lo puedo hacer.
Aquí el programa:
Código:
#include <16F877A.h>
#FUSES NOWDT, HS, NOPUT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT
#use delay(clock=2000000)
int1 flanco=1;
int dly=0;
#int_EXT
void EXT_isr(void)
{
output_a(0b00000000);
if (flanco==1)
{
ext_int_edge(h_to_l);
set_timer0(255-dly);
while(get_timer0()==0); //espera hasta que timer0 se desborde
flanco=0;
output_a(0b00001111);
}
else
{
set_timer0(255-dly);
while(get_timer0()==0); //espera hasta que timer0 se desborde
ext_int_edge(l_to_h);
flanco=1;
output_a(0b00001111);
}
}
void main()
{
set_tris_a(0x00);
set_tris_b(0xff);
enable_interrupts(global);
enable_interrupts(int_ext | l_to_h);
setup_timer_0(rtcc_internal | rtcc_div_128 | rtcc_8_bit);
}
Última edición por un moderador: