Timers
Timers
23
24
25
TEMPORIZADORES Y 26
CONTADORES EN 27
ARDUINO 28
Procesadores I
F.C.F.M.yN. U.N.S.L.
29
01 30
EJEMPLO
02 31
TEMPORIZADO
TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
3RES
TIMERS EN
ARDUINO:
TIMER 8 bits • Compare Match delay(); millis();
0 (0-255) • Overflow micros();
• Compare Match
TIMER 16 bits Librería de
(0-65535) • Overflow
1 Servomotores
• Input Capture
8 bits tone();
• Compare Match
TIMER (0-255)
• Overflow
EJEMPLO
2
DELAY(); MILLIS(); MICROS();
TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
• MILLIS(): devuelve el tiempo de milisegundos que han pasado desde que se inició el programa. No
IMPRESIÓN
donde podré ver el mensaje.
FINAL
Mensaje 1.
Mensaje 2.
Mensaje 3.
EJEMPLO
Mensaje 4.
INTERRUPCIONES
TIMERS REGISTROSINTERRUPCIONESEJEMPLO FUNCIONES ESQUEMA
Una interrupción es un evento externo que detiene la ejecución del programa principal y ejecuta una rutina
de sevicio a la interrupción (ISR). Una vez finalizada la ISR, se continua con la siguiente instrucción del
programa principal .
ISR (TIMERn_CAPT_vect) {
// xxxxxxxxxxxxx
}
•
IMPORTANTES
TCNTx – Registro del Timer/Counter. Aquí se almacena el valor actual del timer.
• TIFRx – Registro de la interrupción por bandera del Timer/Counter. Indica una interrupción
EJEMPLO
de tiempo pendiente.
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
TIMER2 TIMER0
REGISTROS
IMPORTANTES
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
TIMER1
REGISTROS
IMPORTANTES
COMPARE MATCH, OVERFLOW e INPUT
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
CAPTURE
Utilizando el TIMER1:
65529
65530
65531
65532
65533 == OCR1A (65533) COMPARE MATCH INTERRUPT
65534
65535
0 OVERFLOW INTERRUPT
1
2 INPUT CAPTURE INTERRUPT ICP1(PB0) Cambio de estado lógico ICR1=2
3
4
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
Clock
System
Prescaler
CONFIGURACIÓN DEL PRESCALER
TIMERX
TCNTX
DEMOSTRACIÓN PRÁCTICA: CONFIGURACION DE LOS 3
TIMERS
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
Se desea imprimir 2 ondas cuadradas, por los pines 8 y 9. La frecuencia de la onda del pin 8 debe ser de 50 Hz, la del pin 9 de 1kHz.
Además se debe encender el LED del pin 13 de la placa cada 1 segundo. Para ello utilice los 3 timers que dispone Arduino.
Configuración del
Prescaler
Frecuencia del reloj del procesador
-1 = Valor en el registro OCRxA.
Valor del Prescaler x Frecuencia deseada
DEMOSTRACIÓN PRÁCTICA: CONFIGURACION DE LOS 3
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
TIMERS
Aquí es donde se guarda el valor de la cuenta.
Habilito la interrupción cuando el valor del contador sea igual al valor cargado
Configuro el TIMER0. en el registro OCR0A.
Habilito la interrupción cuando el valor del contador sea igual al valor cargado
en el registro OCR0A.
Configuro el TIMER1.
DEMOSTRACIÓN PRÁCTICA: CONFIGURACION DE LOS 3
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
TIMERS
Habilito la interrupción cuando el valor del contador sea igual al valor cargado
Configuro el TIMER2. en el registro OCR0A.
DEMOSTRACIÓN PRÁCTICA: CONFIGURACION DE LOS 3
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
TIMERS
Genero la ISR para el TIMER0.
Código principal.
VISUALIZACIÓN DE LA DEMOSTRACIÓN
EJEMPLO TIMERS REGISTROS INTERRUPCIONES EJEMPLO FUNCIONES ESQUEMA
• https://controlautomaticoeducacion.com/arduino/timer-arduino/
• Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016
• https://circuitdigest.com/microcontroller-projects/arduino-timer-tutorial
• https://oscarliang.com/arduino-timer-and-interrupt-tutorial/
• https://jaimedearcos.github.io/arduino/2017/01/04/Timers/
• https://www.forward.com.au/pfod/ArduinoProgramming/TimingDelaysInArduino.html
• https://arduinoinfo.mywikis.net/wiki/Timers-Arduino
• https://www.youtube.com/watch?v=IdL0_ZJ7V2s
• https://www.youtube.com/watch?v=2kr5A350H7E
• https://www.instructables.com/id/Arduino-Timer-Interrupts/
• ARDUINO UN ENFOQUE PRÁCTICO E INCREMENTAL. Jose Antonio de la Torre las Heras; Julio Daniel Dondo Gazzano. ISBN 978-84-608-7339-6