一起游 手游攻略 手游评测 瑞芯微(EASY EAI)RV1126B PWM使用

瑞芯微(EASY EAI)RV1126B PWM使用

时间: 来源:互联网 浏览:0

1.PWM简介

1.1 开发板PWM资源

图片

1.2 查找PWM节点

rv1126b的pwm资源表如下:

图片【PWM1 CH0】对应pwm1_4ch_0,注册地址为20700000

【PWM1 CH1】对应pwm1_4ch_1,注册地址为20710000

pwm驱动加载成功后,会在文件系统/sys/class/pwm/下生成一个pwm节点(pwmchip*)。通过以下命令可以了解pwm节点与pwm资源的对应关系。

图片[PWM1 CH0]对应的节点为[pwmchip1]

[PWM1 CH1]对应的节点为[pwmchip2]

1.3 操作PWM节点

下面以[PWM1 CH0]的操作为例:

首先通过命令进入pwmchip1控制器(/sys/class/pwm/pwmchip1),可以看到如下内容:

cd /sys/class/pwm/pwmchip1 ls

图片export:用于导出pwm定时器设备

unexport:用于释放pwm定时器设备

向导出文件写入0 将打开pwm 定时器并生成pwm0 目录。

回显0 导出

图片 进入pwm0定时器,可以设置其各种属性,如周期、占空比等。

脉宽调制0

图片echo 1000000 period ##设置定时器一个周期的脉冲数echo 500000 duty_cycle ##设置定时器一个周期的低电平脉冲数echo 1 enable ##启用pwm定时器echo 0 enable ##禁用pwm定时器

相反,向unexport 文件写入0 将关闭pwm 定时器,并且pwm0 目录将被删除。

cd . echo 0 取消导出

图片

2. 快速上手

2.1 开发环境准备

如果您是初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》并按照其相关操作进行编译环境的部署

在PC上的Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,如下图。

cd ~/develop_environment ./run.sh

图片

2.2 源码下载以及例程编译

首先在虚拟机后台终端中执行以下命令创建外设单例源码管理目录:

首先从【百度云盘】下载相关单例程序:

链接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234

提取码:1234

例如,将单例程序下载到:本电脑\D:\百度网盘(无规定,用户可自主选择),如下图。

图片 然后将下载的单实例复制到虚拟机的文件系统中。流程如下图所示。

图片 图片 图片最后进入相应的例程目录进行编译操作。具体命令如下:

cd EASY-EAI-Nano-TB/demo/10_PWM ./build.sh

注意:

* 由于板子上部署了依赖库,交叉编译过程中必须保持挂载/mnt。

图片编译成功后,会在Release目录下生成一个名为test-pwm的可执行程序,并自动部署到开发板的/userdata/目录下。

2.3 例程运行

通过串口调试或者ssh调试,进入板子后台,找到例程部署的位置,如下图:

cd /用户数据

图片执行以下命令运行PWM输出演示,如下所示。

sudo ./测试pwm

执行效果如下。

图片 通过示波器捕获的波形如下图:

图片

3. C语言使用案例

PWM C语言用例,代码地址为10_PWM/test-pwm/main.c,供用户编码参考。下面的代码展示了PWM控制器的初始化、调整周期、占空比、资源释放的操作过程:

int main(int argc, const char** argv) { int ret; ret=pwm_init('pwmchip1', '0'); printf('export_ret:%d\n', ret); ret=pwm_set_attr('pwmchip1', '0', '周期', '1000000'); printf('set_period_ret:%d\n', ret); ret=pwm_set_attr('pwmchip1', '0', 'duty_cycle', '500000'); printf('set_duty_cycle_ret:%d\n', ret); ret=pwm_set_enable('pwmchip1', '0', '1'); printf('set_enable:%d\n', ret); ret=pwm_release('pwmchip1', '0'); printf('unexport_ret:%d\n', ret); //========================================================================ret=pwm_init('pwmchip2', '0'); printf('export_ret:%d\n',ret); ret=pwm_set_attr('pwmchip2', '0', '周期', '1000000'); printf('set_period_ret:%d\n',ret); ret=pwm_set_attr('pwmchip2', '0', 'duty_cycle', '500000'); printf('set_duty_cycle_ret:%d\n',ret); ret=pwm_set_enable('pwmchip2', '0', '1'); printf('set_enable:%d\n',ret); ret=pwm_release('pwmchip2', '0'); printf('unexport_ret:%d\n',ret); //==========================================================================返回0; }

其中,pwm_init()、pwm_set_attr()、pwm_set_enable()、pwm_release()是对系统调用的简单易用的封装。具体实现在10_PWM/test-pwm/main.c中

标题:瑞芯微(EASY EAI)RV1126B PWM使用
链接:https://yqqlyw.com/news/sypc/67829.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
  • 瑞芯微(EASY EAI)RV1126B GPIO使用
  • 瑞萨RZ/G2L微处理器Linux内核中热
  • 绯红之境兑换码最新2021 礼包兑换码大全

    绯红之境兑换码最新2021 礼包兑换码大全[多图],绯红之境兑换码怎么领取?绯红之境兑换码有哪些?绯红之境在今日

    2026-01-06
    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法

    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法[多图],三国群英传7霸王再临怎么玩?三国群英传7霸王再临

    2026-01-06
    妄想山海怎么加好友 加好友方法大全

    妄想山海怎么加好友 加好友方法大全[多图],妄想山海添加好友功能在哪里?妄想山海添加好友的方法是什么?好友添

    2026-01-06
    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略

    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略[多图],江南百景图又见桃花村钓鱼怎么钓?又见桃花村钓

    2026-01-06