K210学习(一)【MicroPython】定时器输出PWM

主要学习:使用MicroPython控制单色LED呼吸灯的代码

代码分析

1.

from machine import Timer, PWM
import time

导入了Timer和PWM模块并调用了time模块中的time函数。这段代码正在使用Timer和PWM模块的功能来控制LED,而time函数则用于计算时间

2.

tim = Timer(Timer.TIMER1, Timer.CHANNEL1, mode=Timer.MODE_PWM)

由于PWM信号需要来源自定时器,所以新建一个定时器对象。使用Timer模块来创建一个计时器对象tim,并设置计时器对象为TIMER1通道1,并将其模式设置为PWM模式

可设置的参数a.定时器X,b..通道X,c.PWM模式

目前K210总共有3个定时器,每个定时器有4个通道

3.

//pwm = machine.PWM(tim, freq, duty, pin, enable=True)
pwm = PWM(tim, freq=500000, duty=50, pin=LED_PIN)

使用PWM模块创建一个PWM控制对象pwm,并将其绑定到先前创建的计时器对象tim上     

参数:

tim: 每个PWM依赖一个定时器来产生波形, 所以这里需要传一个定时器对象,这个定时器对象必须初始化时必须指定定时器 ID 和通道号

freq: PWM 波形频率

duty: PWM 占空比, 指高电平占整个周期的百分比,取值:[0,100]

[pin]: PWM 输出引脚。 实际物理引脚IO编号。

enable: 是否立即开始产生波形,默认位True,及对象生成后立即开始在指定的引脚上产生 PWM 波形

分析:设置PWM频率为500000Hz,占空比为50%(即高电平和低电平的时间相等),并将其输出引脚设置为LED_PIN(LED的引脚)。这将会导致LED灯以500000Hz的频率闪烁,并且亮度的变化量将由占空比决定。

4.

duty=0
add = True
while True:
    if add:
        duty += 5
    else:
        duty -= 5
    if duty > 100:
        duty = 100
        add = False
    elif duty < 0:
        duty = 0
        add = True
    time.sleep(0.05)
    pwm.duty(duty)

使用PWM模块对LED进行闪烁灯特效(渐变亮/暗)。首先将占空比duty设置为0,并在while循环中创建一个变量add,用于判断占空比是在增加还是减少。在循环中不断将duty增加或减少5,直到duty大于100或者小于0时,改变add的值,使得duty的值逐渐增加或减少。同时每次改变duty的值后,使用pwm.duty()方法更新PWM的占空比。在每次循环中,使用time.sleep()方法暂停0.05秒,以实现渐变效果。这将导致LED灯在0%亮度和100%亮度之间忽隐忽现地闪烁。

补充:True是Python中的一个布尔值,表示真或假。在这段代码中,True表示add的初始值是真,也就是占空比初始是增加的。在while循环中,add的值会不停地改变,从而控制占空比的渐变。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于K210定时器,它是一种硬件设备,用于在特定的时间间隔内生成一个周期性的时间信号或触发一个中断。K210芯片上有多个定时器可供使用,其中最常用的是SysTick定时器Timer0定时器。 SysTick定时器K210内核级别的定时器,它用于系统级别的时间管理。它可以用来实现精确的延时、定时中断以及系统时钟的计数等功能。SysTick定时器的时钟源可以选择为外部时钟或内核时钟,其计数值可以在32位计数器中进行配置。 Timer0定时器K210 SOC级别的定时器,它可以用于各种应用场景,如PWM控制、周期性任务触发等。Timer0定时器有多个工作模式可选,包括定时模式、PWM输出模式等。它可以配置为不同的时钟源,并且具有多个预分频系数和比较值来实现不同的定时时间。 在使用K210定时器之前,你需要进行相应的初始化和配置。一般来说,你需要设置定时器的工作模式、时钟源、预分频系数、比较值等参数。然后,你可以启动定时器开始计数,当达到设定的比较值时,定时器会触发相应的中断或产生输出信号。 需要注意的是,K210定时器使用时需要谨慎,避免与其他功能模块冲突,同时合理规划定时器的使用和中断处理程序的编写,以保证系统的稳定性和可靠性。 希望这些信息能够对你有所帮助!如果你还有其他问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值