Für alle, die den VEEK-Ausgang (0...3,3V) z.B. zur Kontrasteinstellung oder zum Dimmen des Backlights von C# oder VB aus nutzen wollen:
Code
- private const Int32 CONTRASTCOMMAND = 6149;
- private enum ContrastCommand : byte
- {
- ContrastGet = 0, // Parm=Ignored, Out=Current setting
- ContrastSet = 1, // Parm=NewSet, Out=Resulting setting
- ContrastInc = 2, // Parm=Amount, Out=Resulting setting
- ContrastDec = 3, // Parm=Amount, Out=Resulting setting
- ContrastDefault = 4, // Parm=Ignored, Out=Resulting setting
- ContrastMax = 5
- }
- [DllImport("coredll.dll")]
- static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);
- [DllImport("coredll.dll")]
- static extern bool DeleteDC(IntPtr hdc);
- [DllImport("coredll.dll", SetLastError = true)]
- private static extern Int32 ExtEscape(IntPtr hdc, Int32 nEscape, Int32 cbInput, byte[] plszInData, Int32 cbOutput, IntPtr lpszOutData);
- void SetContrast(UInt16 Value)
- {
- // hierzu muss die Kontrast-Regelung aktiviert sein!
- // Dazu im display driver textfile das einfügen:
- // reg set value ContrastEnable dword 1
- // Bereich für Value: 0...1023
- IntPtr dcLCD = CreateDC("ddi_smivgx_ddraw.dll", "", "", IntPtr.Zero);
- byte[] vpm = { 0, 0, 0, 0, 0, 0, 0, 0 };
- vpm[0] = (byte)ContrastCommand.ContrastSet;
- vpm[4] = (byte)(Value & 0xFF);
- vpm[5] = (byte)((Value >> 8) & 0xFF);
- ExtEscape(dcLCD, CONTRASTCOMMAND, 8, vpm, 0, IntPtr.Zero);
- DeleteDC(dcLCD);
- }
Bertram Hildebrand, 30.10.2008