K210_MaixPy IDE外设开发之五 定时器TIM

开发板:K210 AIRV R3版 widora

开发环境:MaixPy IDE 矽速家的

必须的参考网站:

https://cn.maixpy.sipeed.com/zh/api_reference/Maix/fpioa.html

https://cn.maixpy.sipeed.com/zh/api_reference/Maix/gpio.html

https://cn.maixpy.sipeed.com/zh/api_reference/machine/timer.html

同样的新建一个文件,_4tim.py

代码用上一节的,只保留LED相关的配置

先把定时器调用进来

from machine import Timer

看看定时器怎么配置

class machine.Timer(id, channel, mode=Timer.MODE_ONE_SHOT, 
    period=1000, unit=Timer.UNIT_MS, callback=None, 
    arg=None, start=True, priority=1, div=0)

定时300ms

tim1 = Timer(Timer.TIMER0,  Timer.CHANNEL0,
    mode=Timer.MODE_PERIODIC,period=300,
    callback=on_timer, arg=on_timer,start=False)

id: Timer.TIMER0 #定时器0

channel: Timer.CHANNEL0, #通道0

mode:

  • MODE_ONE_SHOT: Timer 只运行一次(回调一次)
  • MODE_PERIODIC: Timer 始终运行(连续回调)
  • MODE_PWM: 定时器不用来回调函数,用以产生PWM

period: 定时周期

unit没填,默认是ms毫秒

callback回调函数 on_timer 

arg回调函数的参数

start=False我自己手动开启,不需要自动开启

同样的,跟按键一样,再定时器回调函数上面,闪烁LED灯

def on_timer(timer):
    global i
    if(i==0):
        i=1
    else :
        i=0
    print("time up:", timer)
    led1.value(i)

然后再开启TIM1定时器

tim1.start()

整体代码如下

import utime
from Maix import FPIOA
from Maix import GPIO
from machine import Timer

def on_timer(timer):
    global i
    if(i==0):
        i=1
    else :
        i=0
    print("time up:", timer)
    led1.value(i)

fpioa = FPIOA()
fpioa.set_function(17,fpioa.GPIOHS0)
fpioa.set_function(18,fpioa.GPIOHS1)

led1 = GPIO(GPIO.GPIOHS0,GPIO.OUT)
led2 = GPIO(GPIO.GPIOHS1,GPIO.OUT)

led1.value(0)
led2.value(0)

tim1 = Timer(Timer.TIMER0,  Timer.CHANNEL0,
    mode=Timer.MODE_PERIODIC,period=300,
    callback=on_timer, arg=on_timer,start=False)

global i
i=0
tim1.start()



代码敲好后 连接开发板,然后运行

现象:就一个LED灯在不停的闪(300ms)

猜你喜欢

转载自blog.csdn.net/jwdeng1995/article/details/108939631