Autor Tema: TMR1 como contador de pulsos  (Leído 2425 veces)

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

Desconectado Medusa

  • PIC18
  • ****
  • Mensajes: 252
TMR1 como contador de pulsos
« 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);
 }
« Última modificación: 17 de Diciembre de 2010, 23:01:56 por Medusa »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: TMR1 como contador de pulsos
« Respuesta #1 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
El papel lo aguanta todo

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: TMR1 como contador de pulsos
« Respuesta #2 en: 21 de Noviembre de 2013, 10:27:49 »
algun ejemplo en BAS, yo quiero hacer lo mismo pero en basic