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的管脚波形如下图: ![undefined](https://cdn.openluat-luatcommunity.openluat.com/images/20210420143615628_微信图片编辑_20210420143204.jpg "undefined") ![undefined](https://cdn.openluat-luatcommunity.openluat.com/images/20210420143634322_微信截图_20210420143445.png "undefined") # 硬件设计 见硬件设计指南 [PWM接口 章节](https://hmi.wiki.luatos.com/doc/65042949/e6zPC3k9/CttdyS34)