Linux - PWM的驱动编写
2017-08-22 17:15
246 查看
比如要用到pwm1,那么首先要保证这个pwm1并没有被别的驱动程序占用。
比如在驱动的设备树里面:
可以看到里面把pwm1已经占用掉了,那么除了可以把相应的驱动程序设置为不编译以外,也可以直接把这个设备树里面的标识屏蔽掉,那么在加载驱动时在设备树里面没有找到对应的compatible,也不执行对应的具体内容。
Pwm的驱动程序:
涉及头文件:
Pwm_config函数有三个参数,第一个是当前设置的pwm设备,第二个和第三个分别是占空比与周期。
占空比与周期的单位均是ns,
其中5000000ns即表示5ms,说明一个波形的周期是5ms
其中1200000ns即表示1.2ms,说明一个波形中电平值为高时持续时间为1.2ms
比如在驱动的设备树里面:
backlight { compatible = "pwm-backlight"; pwms = <&pwm1 0 25000>; …… }
可以看到里面把pwm1已经占用掉了,那么除了可以把相应的驱动程序设置为不编译以外,也可以直接把这个设备树里面的标识屏蔽掉,那么在加载驱动时在设备树里面没有找到对应的compatible,也不执行对应的具体内容。
Pwm的驱动程序:
涉及头文件:
#include <linux/pwm.h> struct pwm_device * pwm1 = NULL; //初始化一个pwm设备的结构体变量 pwm1 = pwm_request(1, "pwm1");//申请pwm设备函数,前面是pwm几,后面是给他的简称 if(IS_ERR(pwm1))//申请有无成功 printk("pwm1 err %ld\n", PTR_ERR(pwm1)); else printk("pwm1 success\n"); pwm_config(pwm1, 1200000, 5000000);//下面讲 pwm_enable(pwm1);//将pwm使能,打开
Pwm_config函数有三个参数,第一个是当前设置的pwm设备,第二个和第三个分别是占空比与周期。
占空比与周期的单位均是ns,
其中5000000ns即表示5ms,说明一个波形的周期是5ms
其中1200000ns即表示1.2ms,说明一个波形中电平值为高时持续时间为1.2ms
相关文章推荐
- Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动
- Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动
- 嵌入式Linux驱动笔记(八)------依赖Linux kernel驱动的pwm编写
- 详解linux pwm驱动编写
- Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动
- 编写Linux标准的PWM驱动
- 如何编写Linux下Nand Flash驱动
- 编写基于Linux的lcd驱动
- Linux 字符设备驱动开发基础(一)—— 编写简单 LED 设备驱动
- Linux I2C设备驱动编写(一)
- LED PWM控制芯片PCA9685的Linux 驱动
- 温湿度传感器si7020-a20 linux驱动编写
- 2440 linux 串口驱动编写(大内密探)
- linux驱动开发:ft5x06的touch screen的IIC驱动程序编写
- 如何编写linux下nand flash驱动-2
- 如何编写Linux下Nand Flash驱动
- Linux I2C设备驱动编写(三)-实例分析AM3359
- Linux I2C设备驱动编写(二)
- linux驱动之网卡驱动-虚拟网卡驱动编写
- Linux下SPI从设备驱动的编写