新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的LCD背光調節及驅動的實現

        基于嵌入式Linux的LCD背光調節及驅動的實現

        作者: 時間:2012-04-24 來源:網絡 收藏

        3.1 的初始化和退出函數
        在加載時,內核調用初始化函數s3c_bl_pwm_init()。首先初始化亮度,設置按鍵中斷觸發方式,注冊中斷。然后初始化定時器,設置按鍵初始狀態為抬起(KEY_UP)。最后使用misc_register()向內核注冊混雜設備,混雜設備是字符設備的抽象。中混雜設備的定義如下:
        d.JPG
        在卸載驅動時,內核調用退出函數s3c_bl_pwm_exit(),注銷中斷和混雜設備,完成和初始化函數相反的行為。
        3.2 按鍵中斷和定時器處理程序
        當按鍵被按下后,將發生快速中斷,觸發中斷處理程序buttons_interrupt()。在中斷處理程序中,當按鍵初始狀態為抬起(KEY_UP)時,把按鍵狀態設置為不確定(KEY_DOWNX),然后啟動定時器延時去抖,進入定時器處理函數。如果當前按鍵初始狀態不是抬起則退出中斷處理程序。在定時器處理程序中,讀取按鍵GPIO端口電平,查詢按鍵是否仍然被按下。如果按鍵仍被按下且按鍵狀態是不確定(KEY_DOWNX),則標識當前按鍵狀態為按下(KEY_DOWN)。同時延時一個相對去抖更長的時間,啟動一個新的定時器,每次定時器到期后,查詢按鍵是否仍然被按下且按鍵狀態為按下(KEY_DOWN),如果是,則重新啟動新的定時器;若查詢到已經沒有按下,則標識按鍵狀態為抬起,這時候應該等待新的按鍵中斷。每次標識按鍵狀態為按下(KEY_DOWN)時,應該調用背光函數bl_handler()依據傳入的按鍵編號背光亮度。按鍵中斷和定時器處理函數的流程如圖4所示。

        本文引用地址:http://www.104case.com/article/149184.htm

        e.JPG


        3.3 PWM設置函數
        PWM定時器中有2個寄存器TCNTBn和TCMPBn,分別為定時器計數緩存寄存器和定時器比較緩存寄存器。TCNTBn用來設置PWM輸出脈沖頻率,TCMPBn的值用于設置PWM信號占空比。因此通過寫入不同的TCMPBn的數值,就可以輸出信號占空比,PWM功能,即:要減小PWM的脈寬,則要減小TCMPBn值,相反要增大PWM的脈寬,則要增大TCMPBn。如果使用了反相器,則增大和減小的結果相反,雙緩沖特性允許定時器在工作時改寫TCMPBn的值。
        PWM設置函數pwm_set_duty()根據傳入參數改寫TCMPBn的值,可以實時地改變輸出波形。PWM設置函數設置定耐器TOUT1端口GPB1的PWM功
        能操作步驟如下:
        (1)使能系統PCLK時鐘源,獲取總線時鐘頻率值。設置定時器TOUT1的時鐘預分頻值和分頻值,分別寫入定時器配置寄存器TCFG0和TCF G1;
        (2)寫入初始值到比較緩存寄存器TCMPB1和計數緩存寄存器TCNTB1;
        (3)設置定時器控制寄存器TCON。使能定時器TOUT1的自動重載位,關閉反相器,開啟手動更新位,啟動定時器TOUT1。在定時器延時等待一定時間后定時器的下降計數器開始計數;
        (4)清除定時器TOUT1的手動更新位,手動更新位必須在下次寫前被清除。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新沂市| 来宾市| 长顺县| 高邮市| 兴国县| 长海县| 咸丰县| 绥江县| 土默特右旗| 湘潭市| 施甸县| 出国| 松阳县| 呼玛县| 洪江市| 福清市| 泉州市| 宝清县| 宜兰县| 海兴县| 高雄县| 石嘴山市| 禄劝| 册亨县| 宜宾县| 广饶县| 香河县| 怀化市| 曲沃县| 南江县| 锡林郭勒盟| 芒康县| 曲阜市| 清苑县| 柳江县| 彝良县| 景宁| 白山市| 信丰县| 青阳县| 始兴县|