ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

K210基础实验—定时器

2021-06-16 16:31:34  阅读:298  来源: 互联网

标签:定时器 Counter K210 Timer 实验 MODE 回调 UNIT


K210基础实验—定时器

ZTFR开发板

在这里插入图片描述

定时器

硬件定时器,可以用来定时触发任务或者处理任务,设定时间到了后可以触发中断(调用回调函数),精度比软件定时器高。
需要注意的是,定时器在不同的硬件中可能会有不同的表现。MicroPython 的 Timer 类定义了在给定时间段内(或在一段延迟后执行一次回调)执行回调的基本操作,并允许特定的硬件上定义更多的非标准行为(因此不能移植到其他板)。

共有 3 个定时器, 每个定时器有 4 个通道可以使用

构造函数

tim = 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)
#通过指定的参数新建一个 Timer 对象

‘’’

参数说明
id:Timer ID, [0~2] (Timer.TIMER0~TIMER2)
channel:Timer 通道,[Timer.CHANNEL0~Timer.CHANNEL3]
mode:Timer 模式, MODE_ONE_SHOT 或者 MODE_PERIODIC 或者 MODE_PWM
period:Timer 周期, 在启动定时器后 period 时间, 回调函数将会被调用,(0,~)
unit:设置周期的单位,默认位毫秒(ms),Timer.UNIT_S 或者 Timer.UNIT_MS 或者 Timer.UNIT_US 或者Timer.UNIT_NS
callback:定时器回调函数, 定义了两个参数, 一个是定时器对象Timer, 第二个是在定义对象是希望传的参数arg,更多请看arg参数解释
arg:希望传给回调函数的参数,作为回调函数的第二个参数
start是否在对象构建成功后立即开始定时器, True
priority硬件定时器中断优先级, 与特定的CPU相关, 在K210中,取值范围是[1,7], 值越小优先级越高
div硬件定时器分频器,取值范围[0,255], 默认为0, clk_timer(定时器时钟频率) = clk_pll0(锁相环0频率)/2^(div+1) clk_timer*period(unit:s) 应该 < 2^32 并且 >=1

详细请查看官方文档(点我)

测试代码

from Maix import GPIO
from fpioa_manager import fm
from machine import Timer
#注册 IO 和构建 LED 对象
fm.register(12, fm.fpioa.GPIO0)
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT)
#计数变量
Counter=0
#定时器回调函数
def fun(tim):
    global Counter
    Counter = Counter + 1
    print(Counter)
    LED_B.value(Counter%2)#LED 循环亮灭。
#定时器 0 初始化,周期 1 秒
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC, 
period=1000, callback=fun)

效果:蓝灯每隔 1 秒闪烁 1 次,并且在串口工具可以查看运行次数
在这里插入图片描述

标签:定时器,Counter,K210,Timer,实验,MODE,回调,UNIT
来源: https://blog.csdn.net/weixin_45020839/article/details/117960494

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有