請先看『使用說明』
DPC Module:DPC under Linux
From LEXWiKi
(→How to compile source code) |
(→The Sample code source you can download from) |
||
Line 2: | Line 2: | ||
== The Sample code source you can download from == | == The Sample code source you can download from == | ||
- | Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/DPC_release/Linux/ | + | Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/DPC_release/Linux/DPC_v2.7L_src.tar.gz DPC_v2.7L_src.tar.gz] |
- | Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/DPC_release/Linux/ | + | Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/DPC_release/Linux/DPC_v2.7L_bin.tar.gz DPC_v2.7L_bin.tar.gz] |
== How to compile source code == | == How to compile source code == |
Revision as of 17:59, 30 May 2011
Contents |
The Sample code source you can download from
Source file: DPC_v2.7L_src.tar.gz
Binary file: DPC_v2.7L_bin.tar.gz
How to compile source code
1. Compile source code with Code::Blocks
Download and install the Code::Block with command "apt-get install codeblocks"
Open an exist project(DPC.cbp) in Code::Blocks, click the compile button
2. Compile source code with "make"
- cd DPC_v2.7L_src
- ./configure
- make
- src/dpc // execute the binary file
How to use this Demo Application
1. execute the ap, it will showed in system bar
2. Content explanation
Panel Type : Select panel what you try to adjust
Duty cycle : Brightness control, from 10 to 100
Select Area : After pressed this button, show another dialog which for you can select an area to light on panel
Panel off : light off the panel, (if you try to light on panel again, just click selected area or hotkey)
Hotkey Setting: Setting hotkey to light on panel, press the "OK" button after setting to completed
Install : Set the system to autorun this application when booting
Uninstall : Remove autorun this application when booting.
Exit : Exit the program.
Sample Code Introduction
Define SMBus register
typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; #define m_SMBusMapIoAddr 0x0500 //---------------------------------------------------------------------------------- #define HST_STS 0x00 // SMBus Host Status Register Offset #define HST_CNT 0x02 // SMBus Host Contorl Register Offset #define HST_CMD 0x03 // SMBus Host Command Register Offset #define XMIT_SLVA 0x04 // SMBus Host Address Register Offset #define HST_D0 0x05 // SMBus Host Data0 Register Offset //---------------------------------------------------------------------------------- #define SADD 0xb0 #define PWMFeq 0x01 #define PWMDuty 0x02
SMBusIoWrite
void SMBusIoWrite(BYTE byteOffset,BYTE byteData) { outb( byteData , m_SMBusMapIoAddr + byteOffset); }
SMBusIoRead
BYTE SMBusIoRead(BYTE byteOffset) { DWORD dwAddrVal; dwAddrVal = inb(m_SMBusMapIoAddr + byteOffset); return (BYTE)(dwAddrVal & 0x0FF); }
SetDutyCycle
void SetDutyCycle(gint iDutyValue) { DWORD dwPortVal; SMBusIoWrite(HST_STS, 0xFE); SMBusIoWrite(XMIT_SLVA, SADD); SMBusIoWrite(HST_CMD, PWMDuty); dwPortVal = SMBusIoRead (HST_STS); dwPortVal = dwPortVal & 0x01; SMBusIoWrite(HST_D0, iDutyValue); SMBusIoWrite(HST_CNT, 0x48); }
SetFrequency
void SetFrequency(gint iFrequency) { DWORD dwPortVal; SMBusIoWrite(HST_STS, 0xFE); SMBusIoWrite(XMIT_SLVA, SADD); SMBusIoWrite(HST_CMD, PWMFeq); dwPortVal = SMBusIoRead (HST_STS); dwPortVal = dwPortVal & 0x01; SMBusIoWrite(HST_D0, iFrequency); SMBusIoWrite(HST_CNT, 0x48); }