Bueno amigos aquí los traigo un poco de lo q he hecho….
#include <16F877.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES RC //Resistor/Capacitor Osc with CLKOUT
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#use delay(clock=20000000
int pulsos;
#define salida Pin_C5
#define Out Pin_C6
#int_rtcc
void handle_rtcc_int(){
output_toggle(Out);
set_timer0(93);//Con este valor ocurre un desbordamiento cada 8,33ms//
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
// TODO: USER CODE!!
enable_interrupts(int_rtcc);
enable_interrupts(global);
while(true)
{
do
{
pulsos=input_b();
}
while(pulsos>10);
}
}
En este pequeño programa use el timer0 para generar una onda de referencia de un periodo de 16,667ms esta se mantiene fija, necesito usar el timer1 para dividir el ciclo útil de esta onda dicho ciclo útil tiene un valor de 8,333ms es decir mi onda es simétrica. Estos pulsos encargados de dividir la onda deben ser ingresados por medio de un pulsador.. el timer1 tiene que mantenerse atento a las variaciones de este pulsador para dividir esta onda de 8,33ms,,
Para mi el problema esta en que no entiendo como hacer para q este timer1 realice este trabajo, no se q comando o que sentencias utilizar..
Espero haberme explicado,, si alguien me pueda echar un ayudita,, por favor
:-/Saludos a todos y gracias…..