TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: darck_khronos en 12 de Mayo de 2009, 21:39:18

Título: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: darck_khronos en 12 de Mayo de 2009, 21:39:18
Disculpen podrian ayudarme, lo que pasa es que necesito hacer un contador de 0 a 60 con el timer1 y timer2 mas que la verdad no comprendo como funcionan y no se para que sirvan, tengo que generarlo con CCS y usando ya sea un pic 16f88 o 18f2550.

Espero alguien pueda ayudarme a solucionar esta duda, De Antemano Gracias por su Atencion
Título: Re: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: MLO__ en 12 de Mayo de 2009, 22:59:42
0 a 60 milisegundos? segundos? horas? ticks del reloj?
Título: Re: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: Suky en 13 de Mayo de 2009, 00:23:34
Fíjate aquí (http://www.todopic.com.ar/foros/index.php?topic=24720.msg201392#msg201392) para que veas de que se tratan los timers, es teoría para otros micros pero la base es la misma. Y después cuando aclares que 60 necesitas avanzamos. :wink:
Título: Re: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: darck_khronos en 13 de Mayo de 2009, 12:19:33
0 a 60 milisegundos? segundos? horas? ticks del reloj?

60 segundos, necesito que estos sean visualizados en un Display o un lcd
Título: Re: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: MLO__ en 13 de Mayo de 2009, 15:56:02
Hola.

Los timer sirven para contar tiempos, pero la fuente del tiempo de conteo puede variar, puede ser interna o externa. Si es interna se usa el oscilador interno del microcontrolador para generar el conteo, si es externa, se usa un cristal para asignar la fuente de frecuencia.

Los timers pueden ser de 8 o de 16 bits y cada que terminan de contar ( si es de 8 bits contara hasta 255 y si es de 16 contara hasta 65535) hay un desborde y se genera una interrupcion la cual se puede aprovechar para generar las bases de tiempos.

En el datasheet de los micros que tu mencionas estan las especificaciones de cada uno de los timers -y de todos los modulos del PIC-.

Teoricamente, se calcula en funcion de la frecuencia del cristal -ya sea interno o externo- y de la longitud de conteo -8 o 16 bits-

T_{desborde} = 2^{n} \times \frac{4}{frec_{cristal}}

Saludos
Título: Re: [ayuda] Contador de 0 a 60 con timer1 y timer2
Publicado por: darck_khronos en 14 de Mayo de 2009, 01:04:03
ya Avance un poco aqui dejo el codigo del contador que estoy haciendo

Código: [Seleccionar]

#include <16F88.h>
#USE DELAY( CLOCK=4000000)
#FUSES nowdt,noput,nobrownout,nolvp,noprotect,NOMCLR,INTRC_IO
byte CONST DISPLAY[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void main(){
byte ud=0,dec=0;
SET_TRIS_B(0x00);
SET_TRIS_A(0x00);
OUTPUT_B(0);
 for( ;; ){
   for (dec=0;dec<10;dec++){       //Cuenta digito decenas
      for (ud=0;ud<10;ud++){
         OUTPUT_A(0x02);           //cat_D=apagado,cat_U=encendido
         OUTPUT_B(DISPLAY[ud]);   //Digito unidades
         delay_ms(10);            //Para evitar parpadeos
         
         if (dec==0) output_a(0x03);     //Si decenas=0, cat_D=apagado
         else output_a(0x01);           //Si decenas>0, cat_D=encendido
                 
         OUTPUT_B(DISPLAY[dec]);      //Digito decenas
         delay_ms(10);               //Para evitar parpadeos
     }
   }
 }
}


en este caso lo que realice es un contador con de 0 a 99 usando displays de catodo Comun ya solo me falta poner el Timer1 o el timer2 para que asi se realice un reset no se si alguien me pueda decir donde puedo introducir ese pequeño detalle