Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Например, имеем :

Отправлено ++ 20 августа 2007 г. 10:42
В ответ на: Ответ: Я занимался. Но ДАВНО. отправлено Artem-1.6E-19 20 августа 2007 г. 10:28

Например, имеем :

CRT03: Horizontal Blank End Register
Read/Write Address: 3?5h, Index 03h
This register defines the display enable skew and pulse width of ~Blank signal.
------------------------------------------
7 | 6 5 | 4 3 2 1 0
R | DISPLAY_ENABLE | HORIZONTAL BLANK END
------------------------------------------
Bit 4:0 Horizontal Blank End
Horizontal Blank End has a 6-bit value. This register contains the least significant 5-bits of this value.
Bit 6 of this value is at CRTC index 05 bit 7.

================================================================
CRT11: Vertical Sync Pulse End Register
-----------------------------------------------
7 | 6 | 5 | 4 | 3 2 1 0
LW | RCS | DVI | CVI | VERTICAL SYNC PULSE END
-----------------------------------------------
Bit 3:0 Vertical Sync Pulse End
This value = number of scan lines at which VSYNC becomes inactive.

/* Video mode */
typedef struct _DisplayModeRec {
struct _DisplayModeRec * prev;
struct _DisplayModeRec * next;
char * name; /* identifier for the mode */
ModeStatus status;
int type;

/* These are the values that the user sees/provides */
int Clock; /* pixel clock freq (kHz) */
int HDisplay; /* horizontal timing */
int HSyncStart;
int HSyncEnd;
int HTotal;
int HSkew;
int VDisplay; /* vertical timing */
int VSyncStart;
int VSyncEnd;
int VTotal;
int VScan;
int Flags;

/* These are the values the hardware uses */
int ClockIndex;
int SynthClock; /* Actual clock freq to
* be programmed (kHz) */
int CrtcHDisplay;
int CrtcHBlankStart;
int CrtcHSyncStart;
int CrtcHSyncEnd;
int CrtcHBlankEnd;
int CrtcHTotal;
int CrtcHSkew;
int CrtcVDisplay;
int CrtcVBlankStart;
int CrtcVSyncStart;
int CrtcVSyncEnd;
int CrtcVBlankEnd;
int CrtcVTotal;
Bool CrtcHAdjusted;
Bool CrtcVAdjusted;
int PrivSize;
INT32 * Private;
int PrivFlags;

float HSync, VRefresh;
} DisplayModeRec, *DisplayModePtr;


/* 640x480 @ 75Hz (VESA) hsync: 37.5kHz */
{MODEPREFIX("640x480"),31500, 640,656,720,840,0, 480,481,484,500,0, V_NHSYNC | V_NVSYNC, MODESUFFIX},
-----
vganew->CRTC[0x03] = (((mode->CrtcHBlankEnd >> 3) - 1) & 0x1F);
vganew->CRTC[0x11] = (mode->CrtcVSyncEnd & 0x0F);
-----

Как я понял, в эти регистры пишется номер точки(строка/столбец), где hsync и vsync сбрасываются.

Но так мало бит зарезервировано под эти величины, хотя
CrtcHSyncEnd= 720
CrtcVSyncEnd= 484

И почему в реальности такая странная формула?



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru