Herramientas de usuario

Herramientas del sitio


desarrollo:edu-ciaa:edu-ciaa-nxp:python:bibliotecas:modulo-pyb-timer

Soporte Timers: Clase Timer

La clase Timer permitirá crear objetos que representan los módulos Timers del microcontrolador.

No se implementó la clase TimerChannel, por lo que las funcionalidades de Output Compare e Input Capture no son accesibles.

Constructor

La clase posee un constructor que recibe un solo argumento, este argumento es el número de timer que controlará.

Timers disponibles: 0,1,2 y 3

Métodos

  • interval(t,fn) : Ejecuta la función pasada como argumento fn periódicamente cada el tiempo t expresado en ms
  • timeout(t,fn) : Ejecuta la función pasada como argumento fn luego del tiempo t expresado en ms
  • init(prescaler,period): Configura el timer con un prescaler dado y un periodo dado (números de 32bit)
  • init(freq) : Configura el timer para la frecuencia dada (de 1 a 1000000 Hz)
  • callback(fn) : Configura una función que se ejecutará al vencerse el timer.La función recibirá como argumento el objeto Timer.
  • counter([value]): Devuelve o setea el valor del contador del Timer (número de 32bit)
  • freq([value]): Devuelve o setea el valor de la frecuencia del Timer (de 1 a 1000000 Hz)
  • period([value]): Devuelve o setea el valor del periodo (valor de comparación de la cuenta) número de 32 bit)
  • prescaler([value]): Devuelve o setea el valor del prescaler (número de 32bit)
  • source_freq(): Devuelve la frecuencia de operación del microcontrolador en Hz

Ejemplo 1: Uso de timeout e interval

import pyb

def callb(timer):
      print("Interval interrupt")
      print(timer)

def callbTimeout (timer):
      print("Timeout interrupt")
      print(timer)

print("Test Timers")

t1 = pyb.Timer(1)
t2 = pyb.Timer(2)
t1.interval(2000,callb)
t2.timeout(5000,callbTimeout)

while True:
        pyb.delay(1000)

Ejemplo 2: Ejecución cada 100Hz

import pyb

counter=0

def callb(timer):
    global counter
    counter+=1


t1 = pyb.Timer(1)
t1.init(freq=100) #100Hz
t1.callback(callb)

while True:
        pyb.delay(1000)
        print("counter:"+str(counter))
      
desarrollo/edu-ciaa/edu-ciaa-nxp/python/bibliotecas/modulo-pyb-timer.txt · Última modificación: 2016/10/08 19:05 por egigliotti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki