Panel PC 300
Implementierungsanleitung
7.10.3 Displayauflösung lesen
Die Displayauflösung kann aus dem Virtual Extended Register VG_FP_TYPE des SoftVGA
werden.
Das folgende C Codebeispiel zeigt, wie die Displayauflösung (in Pixel) gelesen werden kann.
// Get display resolution.
//
// Parameters
//
PanelNumber
//
[in] Specifies the panel number: 0 to 15.
//
Note: PPC300 supports only panel number 0.
//
HRes
//
[out] Points to a variable that receives the
//
horizontal resolution in pixel.
//
VRes
//
[out] Points to a variable that receives the
//
vertical resolution in pixel.
//
// Return 0 at success and -1 at failure.
int GetDisplayResolution(unsigned int PanelNumber, unsigned short* HRes, unsigned short* VRes)
{
unsigned char fp_type;
if (PanelNumber != 0)
return -1;
// Read SoftVG Flat Panel Type Virtual Register (VG_FP_TYPE, index 02h).
WRITE_PORT_USHORT(0xAC1C, 0xFC53);
WRITE_PORT_USHORT(0xAC1C, 0x0202);
fp_type = READ_PORT_USHORT(0xAC1E); // get register value
// VG_FP_TYPE contains the panel resolution in bits 5:3.
switch ((fp_type >> 3) & 7)
{
case 0: // 320x240
*HRes = 320;
*VRes = 240;
break;
case 1: // 640x480
*HRes = 640;
*VRes = 480;
break;
case 2: // 800x600
*HRes = 800;
*VRes = 600;
break;
case 3: // 1024x768
*HRes = 1024;
*VRes = 768;
break;
case 4: // 1152x864
*HRes = 1152;
*VRes = 864;
break;
case 5: // 1280x768
*HRes = 1280;
*VRes = 768;
break;
case 6: // 1600x1200
*HRes = 1600;
9
SoftVGA ist ein virtuelles Sytemmodul (VSM) und ein Teil des grafischen Softwaresystems des GEODE
Prozessors.
Copyright © B&R - Änderungen vorbehalten
PPC300_Implementierungsanleitung_V1_02.doc
// write "unlock" code
// MSB = VRC_VG class, LSB = register index
Codebeispiele
9
gelesen
02.11.09
99/132