PWM 驅動函式

2021-05-24 15:27:41 字數 2744 閱讀 1080

函式名稱: bool  pwm_close(dword handle)

功能描述:驅動程式關閉函式

函式引數: dword handle :驅動程式控制程式碼

函式返回值: false: 失敗     true: 成功

呼叫程式: closehandle(hfile);

函式名稱: dword   pwm_open (

dword dwdata,

dword dwaccess,

dword dwsharemode

功能描述:開啟驅動程式

函式引數: dword dwdata     : 裝置驅動程式控制程式碼

dword dwaccess   : 訪問請求** , 是讀和寫的組合

dword dwsharemode: 共享模式  

函式返回值:驅動程式引用事例控制代碼

呼叫程式:

createfile(text("pwm1:"), generic_read | generic_write, 0, 0, open_existing, 0, 0);  

函式名稱: bool  pwm_iocontrol(

dword handle,

dword dwiocontrolcode,

pbyte pinbuf,

dword ninbufsize,

pbyte poutbuf,

dword noutbufsize,

pdword pbytesreturned

功能描述:驅動程式 i/o 請求

函式引數: handle :裝置驅動的控制代碼

dwiocontrolcode :操作碼   裝置指定的 word 型標識,用於描述這個 iocontrol 操作的定義,該值定義:

// 設定預分頻值

#define ioctl_pwm_set_prescaler           1

// 設定分頻值

#define ioctl_pwm_set_divider              2

// 設定頻率和占空比

#define ioctl_pwm_start                                   3

// 獲取當前 pwm 的輸出頻率

#define ioctl_pwm_get_frequency         4

(poutbuf       資料型別為 dword ,長度為 1 ,用於返回 pwm 輸出頻率值

noutbufsize   取值為 1 )

pinbuf :輸入 buffer  緩衝區指標,指向需要傳給驅動程式使用的資料

ninbufsize :輸入 buffer 的 size  要傳給驅動程式使用的資料長度

poutbuf :輸出 buffer  緩衝區指標 指向驅動程式傳給應用程式使用的資料

noutbufsize :輸出 buffer 的 size  要傳送給應用程式使用的資料長度

pbytesreturned :實際處理資料長度

dwiocontrolcode

pinbuf   

ninbufsize    

ioctl_pwm_set_prescaler

設定預分頻值

第一位元組為定時器編號,取值 0 或 1,

第二位元組為分頻值,取值為 0-------255

2 ioctl_pwm_set_divider

設定分頻值

第一位元組為定時器編號,取值 0 或 1,

第二位元組為分頻值,取值為 2 , 4 , 8 , 16

2 ioctl_pwm_start

設定頻率和占空比

第一位元組為定時器編號,取值 0 或 1,

第二位元組為頻率值,取值為 0-------------65535

第三位元組為占空比值 取值為 0-----------65535

3 ioctl_pwm_get_frequency

獲取當前 pwm 的輸出頻率

定時器編號,取值 0 或 1,

1 函式返回值: true: 成功    false: 失敗

呼叫程式:    

// 設定 pwm0 定時器預分頻值

byte prescale[2] = ;

::deviceiocontrol(hpwmfile, ioctl_pwm_set_prescaler, prescale, 2, null, 0, null, null);

// 設定 pwm0 定時器分頻值

byte divider[2] = ;

ret = ::deviceiocontrol(hpwmfile, ioctl_pwm_set_divider, divider, 2,

null, 0, null, null);

// 設定占空比和頻率

dword buff[3] = ;

ret = ::deviceiocontrol(hpwmfile, ioctl_pwm_start, buff, 3,

null, 0, null, null);

// 獲取 pwm0 輸出頻率

dword timer = 0, curfreq, actlen;

ret = ::deviceiocontrol(hpwmfile, ioctl_pwm_get_frequency, &timer, 1,

&curfreq, 1, &actlen, null);

Linux系統PWM驅動

硬體平台 imx6 核心版本 kernel3.0.35 在linux核心中有乙個規律,linux核心開發者把通用的東西都總結出來,個性化的東西就留出介面,和gpio驅動類似,pwm驅動在核心中也提供了對應的介面函式,核心提供的介面函式宣告在include linux pwm.h中 申請乙個pwm資源...

linux 驅動之PWM蜂鳴器驅動

table of contents 1 常用pwm函式 2 驅動程式設計例項 3 應用程式設計 4 pwm裝置樹節點配置 5 核心配置 6 測試 申請乙個pwm裝置 pwm device pwm get struct device dev,const char con id 配置pwm週期和占空比 ...

ok6410 PWM 驅動蜂鳴器

驅動程式 include include include include include include include include include include include include include include include include include include i...