基于DragonBoard 410c的遥控炮台二之舵机驱动(下)

一.背景

在上篇,博主给大家介绍了关于舵机的相关知识以及PWM的控制原理,并且根据410c的特点写了个GPIO口模拟PWM的驱动,但是尽管输出的波形图还算稳定,但相对来讲,PWM作为稳定的硬件通讯信号,是需要时刻保持信号的输出,换言之,假如一个周期20ms,脉宽50%的波形,CPU平均在10ms内调度GPIO进行实时电平改变。上篇博客的stree.c驱动里,我们采用在工作队列里udelay的方式来实现(具体参考http://blog.csdn.net/ad3600/article/details/59484467这篇博客),这在linux这种分时调度系统里是相当消耗CPU资源的做法(CPU占用率:android系统里占25%+,纯linux系统占80%+),但如果换成usleep,或者干脆采用软件定时器来做延时控制,这种方式虽然能极大地降低CPU的占用率,但在linux的这类分时系统里无法保证及时的硬件操作的实时响应,实测波形如下:


图1 PWM波形1


图2 PWM波形2


图3 PWM波形3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值