如果利用高通内部定时器输出固定时间的pwm波形

项目开发过程中,有些设备需要pwm去驱动,例如马达。在马达运动过程中算法需要对马达的具体步数进行设置,由于sleep和定时器都存在不精确的问题,这时候需要高通PMIC内部寄存器来对pwm时间进行设置。
【如果利用高通内部定时器输出固定时间的pwm波形】设置方法主要参考qpnp_leds.c驱动。
涉及到的主要代码有:
pwm_disable(mdev->drv8834_pwm_dev);
msleep(10);
pwm_lut_config(mdev->drv8834_pwm_dev,PWM_CYCLE,duty_pct,mdev->lut_params);
pwm_change_mode(mdev->drv8834_pwm_dev, 1); //LPG
pwm_enable(mdev->drv8834_pwm_dev);
主要参考了rgb灯代码的设置方法,参数可按照需要进行设置.mdev->lut_params.ramp_step_ms代表了一次pwm所走的时间.
时间设置范围是0~500ms
利用示波器量了一下,很准,而且占用cpu资源很少.

    推荐阅读