查看: 2055|回复: 2

[原创] 【GoRK3288】5.PWM操作方法

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-5-22 09:17:26 | 显示全部楼层 |阅读模式
    分享到:
         请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库


        这一节来看看PWM的操作方法。前面说到了GPIO7_A1是个复用端口,包括GPIO和PWM,那么这次还是使用这个端口把它变成PWM输出。
        还是来看这张图

    1.png
        可以发现PWM在前,GPIO在后,也就是说默认的功能为PWM。如果想使用PWM功能的话,上电后可以直接使用了。不过为了能更加清楚的说明它是个复用端口,可以在上一节作为GPIO使用后,不要断电或重启,可以重新配置为PWM功能再来使用,其他端口不论默认功能是什么,都是一样的操作方法。

        再来看Test.go中的示例代码
    2.png
        即便当前是GPIO功能,也可以直接初始化为PWM的端口。在初始化时,可以不需要考虑端口,直接给定PWM的通道就可以了。因为手册是已经标明PWM1对应的就是GPIO7_A1。至于它到底是PWM还是GPIO,是通过Create类型来决定的,并且类中已经自动配置了复用设置寄存器,对用户完全透明,不用再去关心。
        这个示例代码比较全,实际在使用时,如果不打算做太多的设置,可以直接指定周期和占空比,再用Start和Stop来控制启停,在不使用时别忘了释放端口。
        同理,可以初始化其他的PWM来使用,如RK3288.PWM_2、
    RK3288.PWM_3等。不过PWM4不要使用,它已经被系统使用了,强行使用它会造成系统紊乱,需要重启系统恢复,有兴趣可以试一下:-)

        需要注意的是,Start()开启的是一个协程,也就是说启动PWM后程序不会阻塞在Start()语句上,可以在PWM输出的时候继续执行其他的代码,互不影响。

        还是使用上一节的测试方法,继续使用那个小板。这上面既有LED,也有蜂鸣器,都可以通过PWM来驱动
    3.jpg
        启动PWM后可以看到LED的闪烁或蜂鸣器的声音,不过这些都是动态的,没办法抓拍,就不放出照片了。
       
    最后总结一下PWM类的方法:
        CreatePWM:初始化PWM端口,需要指定通道
        FreePWM:释放PWM
        GetState:获取当前PWM是否已经启动
        GetCNT:获取当前PWM的计数器
        GetPERIOD:获取当前PWM被设置的周期数
        GetDUTY:获取当前PWM的占空比周期数(不是百分比)
        SetCNT:设置计数器,启动PWM之前最好设置为0
        SetPERIOD:设置周期数
        SetDUTY:设置占空比周期数
        SetInactivePolarity:设置PWM启动时是高电平还是低电平
        SetDutyPolarity:设置占空比的高低电平
        Start:启动PWM
        Stop:停止PWM

       
    GoRK3288库请在https://github.com/tjCFeng/GoRK3288下载。

    【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!
    https://www.cirmall.com/bbs/thread-41838-1-1.html
    【GoRK3288】2.Go语法简要说明及GoRK3288结构
    https://www.cirmall.com/bbs/thread-41847-1-1.html
    【GoRK3288】3.GPIO操作方法(1)
    https://www.cirmall.com/bbs/thread-41848-1-1.html
    【GoRK3288】4.GPIO操作方法(2)
    https://www.cirmall.com/bbs/thread-41882-1-1.html
    【GoRK3288】6.TSADC操作方法
    https://www.cirmall.com/bbs/thread-41926-1-1.html
    【GoRK3288】7.WatchDog操作方法
    https://www.cirmall.com/bbs/thread-41944-1-1.html


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-10 20:29
  • 签到天数: 711 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-5-22 14:50:52 | 显示全部楼层
    感谢共享,最近在玩PX2,也是没什么人气,楼主这么好的贴都没人顶
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-5-22 16:09:42 | 显示全部楼层
    IC爬虫 发表于 2015-5-22 14:50
    感谢共享,最近在玩PX2,也是没什么人气,楼主这么好的贴都没人顶

    PX2没有开发手册,没法做,要不就一起写了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 12:16 , Processed in 0.120963 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.