










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
se explica el funcionamiento de los timers 1 3 y 5 para un pic18f45k22
Tipo: Apuntes
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
TMRxON TMRxGE Timer1/3/5 Operation
La fuente del Timer1/3/5 Gate puede ser seleccionada de una de cuatro fuentes diferentes. La selección de la fuente es controlada por los bits TxGSS del registro TxGCON. También se puede seleccionar la polaridad de cada fuente disponible. La selección de la polaridad se controla mediante el bit TxGPOL del registro TxGCON. TABLE 12-4: TIMER1/3/5 fuente del gate TxGSS TIMER1/3/5 fuente del gate 00 Timer1/3/5 Gate Pin 01 Temporizador 2/4/6 Coincidencia con PR2/4/ (Incrementos de TMR2/4/6 para coincidir con PR2/4/6) 10 Comparador 1 Salida sync_C1OUT (opcionalmente salida sincronizada Timer1/3/5) 11 Comparador 2 Salida sync_C2OUT (opcionalmente salida sincronizada Timer1/3/5) El recurso de la puerta, Timer2 Match a PR2, cambia entre Timer2, Timer4 y Timer6 dependiendo de cuál de los tres Timer de 16 bits, Timer1, Timer3 o Timer5, se seleccione. Véase el cuadro 12- para determinar qué combinación de Timer2/4/6 Match to PR2/4/6 está disponible para el temporizador de 16 bits que se está utilizando. TABLE 12-5: RECURSOS DEL GATE PARA EL TIMER2/4/6 COINCIDEN CON EL PR2/4/ Recursos del Timer 1/3/5 Gate del timer1/3/5 coinciden con la selección Timer1 TMR1 coincide con el PR Timer3 TMR3 coincide con el PR Timer5 TMR5 coincide con el PR 12.7.2.1 Funcionamiento de la puerta del pin TxG La clavija TxG es una fuente para el control de la puerta Timer1/3/5. Puede ser usado para suministrar una fuente externa al circuito de la puerta Timer1/3/5. 12.7.2.2 Temporizador2/4/6 Operación de la puerta de enlace El registro TMR2/4/6 se incrementará hasta que coincida con el valor del registro PR2/4/6. En el siguiente ciclo de incremento, el TMR2/4/6 será reajustado a 00h. Cuando se produzca este reset, se generará automáticamente un pulso de bajo a alto que se suministrará internamente al circuito de la puerta Timer1/3/5. 12.7.2.3 Operación de la puerta del comparador C La salida resultante de una operación de Comparador 1 puede ser seleccionado como fuente para el control de la puerta Timer1/3/5. La salida del Comparador 1 (sync_C1OUT) puede ser sincronizado al reloj Timer1/3/5 o a la izquierda asincrónica. Para más información, véase la sección 18.8.4 "Sincronización de la salida del comparador con el temporizador1". 12.7.2.4 Operación de la puerta del comparador C La salida resultante de una operación de Comparador 2 puede ser seleccionado como fuente para Timer1/3/5 Gate Control. La salida del Comparador 2 (sync_C2OUT) puede se sincronizarán con el reloj Timer1/3/5 o se dejarán asincrónica. Para más información, véase Sección 18.8.4 "Sincronización de la salida del comparador a Timer1". 12.7.3 MODO DE CONMUTACIÓN DE LA PUERTA DEL TEMPORIZADOR1/3/ Cuando se activa el modo Timer1/3/5 Gate Toggle, es posible medir la duración del ciclo completo de una señal de puerta Timer1/3/5, en lugar de la duración de un pulso de un solo nivel. La fuente de la puerta Timer1/3/5 se enruta a través de un flip-flop que cambia de estado en cada flanco de incremento de la señal. Véase la Figura 12-5 para los detalles de temporización. El modo de conmutación de la puerta Timer1/3/5 se activa configurando el bit TxGTM del registro TxGCON. Cuando el bit TxGTM se borra, el flip-flop se borra y se mantiene limpio. Esto es necesario para controlar qué borde se mide.Esta concatenación crea un temporizador de 24 bits.
Cuando se usa en conjunto con el disparador de eventos especiales del CCP se pueden generar interrupciones periódicas muy largas. Nota: Habilitar el modo Toggle al mismo tiempo que se cambia la polaridad de la puerta puede dar lugar a un funcionamiento indeterminado. 12.7.4 TEMPORIZADOR1/3/5 PUERTA DE UN SOLO PULSO MODE Cuando el temporizador 1/3/5 Puerta modo de un solo pulso está activado, es posible capturar un evento de puerta de un solo pulso. El modo de puerta de un solo pulso del temporizador 1/3/5 es activado primero por estableciendo el bit TxGSPM en el registro TxGCON. Siguiente, el bit TxGGO/DONE en el registro TxGCON debe ser ...y el juego. El temporizador 1/3/5 estará totalmente activado en el próximo ...y el incremento de la ventaja. En el siguiente borde de salida de la pulso, el bit TxGGO/DONE será automáticamente despejado. No se permitirá que ningún otro evento de la puerta incrementar el Timer1/3/5 hasta que el bit TxGGO/DONE sea una vez más en el software. Limpiar el bit TxGSPM del registro TxGCON hará que también despeja la parte de TxGGO/DONE. Vea la Figura 12-6 para detalles de tiempo. Activando el modo de conmutación y el modo de pulso único simultáneamente permitirá que ambas secciones funcionen juntos. Esto permite que los tiempos de ciclo en el Timer1/3/5 La fuente de la puerta debe ser medida. Véase la figura 12-7 para detalles de tiempo. 12.7.5 ESTADO DEL VALOR DE LA PUERTA DEL TEMPORIZADOR1/3/ Cuando se utiliza el temporizador1/3/5 de estado de valor de la puerta, es es posible leer el nivel más actual de la puerta valor de control. El valor se almacena en el bit TxGVAL en el registro de TxGCON. El bit TxGVAL es válido incluso cuando la puerta del temporizador 1/3/5 no está activada (bit TMRxGE está despejado). 12.7.6 TEMPORIZADOR1/3/5 EVENTO DE PUERTA INTERRUPTOS Cuando el temporizador 1/3/5 Interrupción de eventos de la puerta está activado, es posible generar una interrupción al completar un evento de la puerta. Cuando se produce el flanco descendente de TxGVAL, el bit de bandera TMRxGIF en el registro PIR3 se activará. Si se activa el bit TMRxGIE en el registro PIE3, se reconocerá una interrupción. El bit de bandera TMRxGIF funciona incluso cuando el La puerta del temporizador 1/3/5 no está habilitada (el bit TMRxGE está despejado). Para obtener más información sobre la selección del estado de prioridad alta o baja para la Interrupción de eventos de la puerta Timer1/3/5, consulte la Sección 9.0 "Interrupciones". 12.8 Temporizador1/3/5 Interrupción El par de registro Timer1/3/5 (TMRxH:TMRxL) se incrementa a FFFFh y pasa a 0000h. Cuando Timer1/3/5 se vuelca, el bit de bandera de interrupción de Timer1/3/5 del registro PIR1/2/5 se fija. Para habilitar la interrupción en el vuelco, se deben establecer estos bits:
Configuración del timer 1 como temporizador a 1 segundo #include <xc.h> #include "configuracion.h" void __interrupt () interrupcion(void) { if(PIR1bits.TMR1IF==1) { LATD=~LATD; TMR1H=0XEC; TMR1L=0X78; PIR1bits.TMR1IF=0; } } void main(void) { //CONFIGURACION DEL PUERTO D COMO SALIDA ANSELD=0X00; TRISD=0X00; LATD=0X00; //CONFIGURACION DEL TIMER T1CON=0X01; T1GCON=0X00; TMR1H=0XEC; TMR1L=0X78; //CONFIGURACION DE LA INTERRUPCION RCONbits.IPEN=0; INTCON=0XC0; PIR1bits.TMR1IF=0; PIE1bits.TMR1IE=1; while(1); }
#include <xc.h> #include "configuracion.h" #include "lcd.h" void main(void) { //CONFIGURACION DE LOS PUERTOS ANSELC=0X00; TRISC=0XFF; ANSELD=0X00; TRISD=0X00; LATD=0X00; ANSELE=0X00; TRISE=0X00; LATE=0X00; //CONFIGURACION DEL TIMER1 COMO CONTADOR T1GCON=0x00; T1CON=0x83; TMR1=0x0f00; char col=0, fil=1; long conteo=0; LCD_CONFIGURAR(); while(1) { conteo=TMR1; LCD_Printf("CONTEO ES=%i",&col,&fil,conteo); __delay_ms(200); LCD_RESET(); } }