Autor Tema: Ayuda con Timer1  (Leído 1775 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Ayuda con Timer1
« en: 03 de Enero de 2007, 21:37:54 »
Hola

Tengo el siguiente problema, no puedo obtener un dato de 16 bits a partir del Timer1, éste me arroja datos de sólo 8 bits en los siguientes pics que he probado: 18F2525,18F2610,18F2620 y 18F2680. Alguno tiene idea de qué es lo que me está pasando. De antemano les agradezco su valiosa ayuda. Lo chistoso es que en un PIC 18F2320 el dato que obtengo sí es de 16 bits, acaso hay alguna configuración adicional para los PICs antes mencionados??

Yo tomo el dato de la siguiente forma:
Código: [Seleccionar]
#int_RTCC
void timer()
{   
interrupcion++;
if(interrupcion==9375) // Entra cada 1 min
{   
pulsos=get_timer1();   
fprintf(PC,"PULSOS=%lu\n\r",pulsos);     
interrupcion=0;   
set_timer1(0);
}
set_rtcc(131);
}

Y la configuración:
Código: [Seleccionar]
setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256 | RTCC_8_BIT);
set_rtcc(131); // 6.4ms
setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);
set_timer1(0);
interrupcion=0;

Saludos


Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Re: Ayuda con Timer1
« Respuesta #1 en: 09 de Enero de 2007, 22:41:58 »
Hola

Al parecer creo que nadie ha tenido la mala suerte de hacer las cosas que yo, pero bueno, despues de leer y leer como bien dice maunix he encontrado la solución a mi problema.
Aunque resulta un tanto contradictoria por lo siguiente: para realizar correctamente la lectura de ambos registros del Timer1 (TMR1H y TMR1L) a través del get_timer1() es necesario limpiar los bits 7 y 2 del registro T1CON, haciendo esto ya obtengo el dato de 16 bits. Digo lo de contradictorio porque al limpiar el bit 7 estamos dando la orden de leer ambos registros del Timer1 cada uno de 8 bits pero pensandolo bien no hay mucha contradicción porque si observamos el código en ensamblador de get_timer1 se puede observar que se leen ambos registros por separado y no como un registro de 16 bits.

En fin, espero que esto puede ayudarles a otros que estén pasando por los mismos problemas que yo pasé.

Saludos


 

anything