MTK平台pwm控制led的亮度

2021-10-05 03:24:16 字數 1030 閱讀 5528

1. 查mtk的android_driver_allinonev1.01.pdf資料,到mediatek\source\kernel\drivers\leds\leds.c 中通過檢視static int led_set_pwm(int pwm_num, struct nled_setting* led)函式,根據

struct cust_mt65xx_led ;結構定義的 cust_led_list中

static struct cust_mt65xx_led cust_led_list[mt65xx_led_type_total] = ,,,

,,,,

};  來選擇的botton backlight為pwm7等控制模式。

2.  修改mediatek\source\kernel\drivers\leds\leds.c檔案led_set_pwm中的case nled_on下的duty(0-255),可以達到改變led的brightness。

pwm控制原理

1.這裡是利用脈寬pwm法,通過調整pwm的週期和占空比來改變led亮與不亮的時間,即改變了亮與不亮的機器週期,達到控制led的亮與暗。這裡的占空比的變數引數就是duty 和lever.

2.pwm中的占空比解釋如下:如32khz意味每秒產生32k個脈衝波,每個脈衝波高電平用1,低電平0表示,,若產生的波是均勻的01010101…系列,說明了導通的時間和非導通的時間是1:1,即占空比是50%,若為非均勻的脈衝波,0與1的比例失調,即大於50%的占空比輸出的平均電流大,則led就更亮。

3.由暫存器kpledcom0和pwm1模式控制duration和data width等來調節01序列比,每個時間週期內有不同比例的01系列,再把這些不同的占空比分255個等級,mt6573_pwm.c 中 duty 或者 lever的變化,通過s32 pwm_set_easy_config ( struct pwm_easy_config *conf)函式轉化為data0,data1值,然後去寫暫存器: pwm_send_data0,pwm_send_data1;這樣我們就可以調節led的亮度變化了。

————————————————

控制led 用pwm的方法控制LED亮度

在本課程中,您將學習如何通過電位計來更改led的亮度。電位器實際上是乙個可調的電阻,阻值隨意手柄的轉動而變化,模擬電路中,我們可以將電位器串聯在電路中,改變led亮度。本次實驗,電位器只提供乙個訊號,實際燈的亮度由arduino控制。二 材料準備 1 arduino uno開發板 1 麵包板 若干杜...

PWM 用按鍵控制 LED 的亮度

以前寫過一篇關於 pwm 的博文,已經有一年了,鏈結如下 文中使用了示波器來顯示不同占空比的波形。其實,利用 led 也能通過亮度來表現出 pwm 引數的變化,用實物進行測試,效果很好,但是用 proteus 進行 試驗,卻只是看到閃爍的厲害,基本上看不出亮度的變化。近來發現,加上乙個大電容,就可以...

任務3按鈕PWM控制LED亮度

任務3按鈕pwm控制led亮度 程式解讀 通過pwm的方式來調整led的亮度。int var 0 設計變數,int var val var 變數名 val 賦給變數的值 int ledpin 6 帶 號標識的介面才具備pwm輸出功能。int up 3 按鍵引腳,用於變亮效果 int down 8 按...