TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Medusa en 17 de Diciembre de 2010, 22:49:02

Título: TMR1 como contador de pulsos
Publicado por: Medusa en 17 de Diciembre de 2010, 22:49:02
Hola, alguien me podria orientar sobre la configuracion y el uso del TMR1 como contador de pulsos externos

Lo que nececesito es configurar el modulo de TMR1 como CONTADOR de pulsos para que lea los pulsos provenientes de un sensor, con el TMR0 he implementado una rutina que cada 1seg, lee el contendio del contador (pulso) y lo muestra, mi problema es que no se como indicarle al compilador de que deseo usar el contador de TMR1.

Aqui esta mi codigo


Código: [Seleccionar]
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,NOSTVREN
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)// RS232 Estándar

int16 milisegundos;
int pulsos;

#define PULSO      PIN_A2
#define ON           output_high
#define OFF          output_low

#INT_TIMER0
void tempo0(){
                disable_interrupts(INT_TIMER1);
                disable_interrupts(GLOBAL);

                if (Contador == 0){
                   pulsos = get_timer1();
                   printf("El Nro de Pulsos leidos es: %u \r\n",pulsos);
                   milisegundos = 1000;
                   }
                  else
                       milisegundos-- ;

                set_timer0(63025);
                enable_interrupts(INT_TIMER1);
                enable_interrupts(GLOBAL);
}



void main(){

                setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);                      
                set_timer0(63025);                                                  //carga TMR0 para desvordar cada 1ms
                setup_counters (RTCC_EXT_H_TO_L, RTCC_DIV_1);               ???????????? como lo configuro???????          
                enable_interrupts(INT_TIMER0);                                            
                enable_interrupts(GLOBAL);                                                  

                milisegundos = 1000;

                while(1);
 }
Título: Re: TMR1 como contador de pulsos
Publicado por: MLO__ en 17 de Diciembre de 2010, 23:22:10
Hola.

Seria algo asi:
Código: [Seleccionar]
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
Saludos
Título: Re: TMR1 como contador de pulsos
Publicado por: jorgenuviola en 21 de Noviembre de 2013, 10:27:49
algun ejemplo en BAS, yo quiero hacer lo mismo pero en basic