hola a todos bueno estoy haciendo un programa que requiere que el timer1 del pic 18f452 marque cada 2 segundos con la bandera del timer se escribe la palabra time el problema es q no puedo cambiar la frecuencia del cristal q esta en 19660800 (ese es el requerimiento) y me piden q use un preescalador
aca esta el codigo
void main(void)
{
startup();
setup_timer1();
printf(CLR_SCR); // Rensa skärmen
do
{
// Här snurrar vi nu och väntar på roll over flaggan, TMR1IF, ska sättas
if (bit_test(PIR1,TMR1IF)) //Bit 0 är TMR1IF
{
output_bit(PIN_C2,~input(PIN_C2)); // Blinka Status Led Master Card 5 ggr/sek
bit_clear(PIR1,TMR1IF); // Nolla roll over flaggan, TMR1IF
printf("Time");
}
}while(TRUE);
}
void setup_timer1(void)
{
setup_timer_1(T1_DISABLED); // Se includefilen 18f452.h
set_timer1(RESET_TIMER); // TMR1H och TMR1L nollställs
disable_interrupts(INT_TIMER1); // Interrupten frånkopplas
disable_interrupts(INT_EXT);
disable_interrupts(GLOBAL);
setup_timer_1(T1_INTERNAL | 0x70); // Starta Timer1 med prescale 1:8
}