PWM设备
# 简介
Air722UG支持3路PWM输出:PWM_PWT_OUT, PWM_LPG_OUT, PWM_PWL_OUT_1
-- ---
# pwm接口控制
pwm的库由底层core实现,相关API接口如下:
|API接口| 描述|
| --- | --- |
| pwm.open()| 打开pwm功能|
| pwm.set()| 设置pwm功能|
| pwm.close| 关闭pwm|
> 详细的API介绍见[LuatOS-Air core API](https://doc.openluat.com/wiki/21?wiki_page_id=2251)章节
-- ---
# pwm使用示例
pwm 的具体使用方式可以参考如下示例代码,示例代码的主要步骤如下:
1.先建一个sys.taskInit任务
sys.taskInit(function ()
end)
2. 用gpio5做pwm输出时
```
--0:gpio5, 1:gpio13
local result=pwm.open(0)
sys.wait(3000)
log.info("vbatt.read",result)
--参数 释义 取值范围
--p1 周期 0-1024
--p2 占空比 0-512
--配置pwm参数
pwm.set(0,1024,100)
```
2.用gpio13做pwm输出
```
local result=pwm.open(1)
sys.wait(3000)
log.info("vbatt.read",result)
--配置pwm参数
--第一个1是id,第二个是p1:250ms,第三个是p2:125ms
pwm.set(1,1,8)
-- p1:代表一个周期的输出时间,对应关系为:
-- 0 -- LGP_PER_125MS
-- 1 -- LGP_PER_250MS
-- 2 -- LGP_PER_500MS
-- 3 -- LGP_PER_1000MS
-- 4 -- LGP_PER_1500MS
-- 5 -- LGP_PER_2000MS
-- 6 -- LGP_PER_2500MS
-- 7 -- LGP_PER_3000MS
-- p2:代表一个周期高电平的输出时间,对应关系为:
-- 0 -- LGP_ONTIME_UNDEFINE
-- 1 -- LGP_ONTIME_15_6MS
-- 2 -- LGP_ONTIME_31_2MS
-- 3 -- LGP_ONTIME_46_8MS
-- 4 -- LGP_ONTIME_62MS
-- 5 -- LGP_ONTIME_78MS
-- 6 -- LGP_ONTIME_94MS
-- 7 -- LGP_ONTIME_110MS
-- 8 -- LGP_ONTIME_125MS
-- 9 -- LGP_ONTIME_140MS
-- 10 -- LGP_ONTIME_156MS
-- 11 -- LGP_ONTIME_172MS
-- 12 -- LGP_ONTIME_188MS
-- 13 -- LGP_ONTIME_200MS
-- 14 -- LGP_ONTIME_218MS
-- 15 -- LGP_ONTIME_234MS
```
5.在了解并修改了DEMO后将demo和对应的底包下载到开发板。
6. 下载完成后重启,在开发板上用示波器测试gpio13的管脚波形如下图:


# 硬件设计
见硬件设计指南 [PWM接口 章节](https://hmi.wiki.luatos.com/doc/65042949/e6zPC3k9/CttdyS34)