Seite 1 von 1

screen refresh rate

Verfasst: 04.11.2016, 14:41
von RedGuy
Hi !

Für mein aktuelles Projekt "eigener Computer" http://zfx.info/viewtopic.php?f=10&t=4123 programmiere ich einen über VGA connector angesteuerter virtueller Monitor 8-) .

Jetzt habe ich bisher nicht mit Sicherheit herausgefunden wer die Bildschirmwiederholfrequenz festlegt.
Macht das der Treiber via DDC (Display Data Channel). Oder legt diese Standardmäßig der Monitor fest kann nur über DDC ausgelesen werden ?!


Hat jemand eine gute Informationsquelle für dieses DDC ?

Gruss
RedGuy

Re: screen refresh rate

Verfasst: 04.11.2016, 14:57
von Schrompf
Quellen müsste ich selbst googeln, aber die Monitore geben üblicherweise vor, in welchem Frequenzbereich sie welche Auflösung können. Das stammt noch aus Zeiten der Röhrenmonitore und ist heute ein bisschen überholt, aber die Grundrichtung "Monitor sagt an, was er kann" stimmt immernoch.

Re: screen refresh rate

Verfasst: 04.11.2016, 17:07
von RedGuy
Hi !

Nachtrag: Also das mit DDC gibt es zumindest beim VGA connector, der ja scheinbar von AMD und Intel abgeschafft werden soll...
Wie das bei DVI aussieht weiß ich nicht- müsste ein ähnliches Prinzip sein.

@Schrompf:
Das hört sich stark nach so etwas wie DDC an.

Danke für die Antwort 8-) !!


Gruss
RedGuy

Re: screen refresh rate

Verfasst: 04.11.2016, 20:15
von RedGuy
Hi !


AAALSO. Das Ganze wird bei VGA wirklich über einen digitalen seriellen Bus festgelegt.

Das Protokoll nennt sich DDC/CI (Display Data Channel Command Interface). Dies ist zumindest im Moment der Standard bezüglich VGA - Anschlüssen.
DDC/CI basiert auf dem I2C seriellen Bus.

Allerdings ist die Kommunikation (gewisse Parameter) Monitor abhängig.

Und genau dies bezüglich finde ich NICHTS im Internet.
Ganz konkret: Wie stellt man die screen refreh rate für einen Dell-Monitor über DDC/CI ein ?

Sollte ich mich da mal an einen Bildschirmhersteller wenden und sagen, dass ich einen Treiber für den Monitor schreiben will ?!


Gruss
RedGuy

Re: screen refresh rate

Verfasst: 05.11.2016, 10:13
von xq
Schau dir doch einfach mal den Source von ddccontrol an.
Redguy hat geschrieben:Wie stellt man die screen refreh rate für einen Dell-Monitor über DDC/CI ein ?
Gar nicht, die ist immer noch "fix". Du schickst einfach ein passendes VGA-Signal raus und der Monitor zeigt das dann an. Moderne Monitore erkennen die Refresh-Rate auch automatisch und stellen sich darauf passend ein.

Nach Wikipedia dient DDC/CI nur dazu, das "OSD" des Bildschirms zu steuern, also so Sachen wie Farbtemperatur usw, aber nicht die Refreshrate.

Re: screen refresh rate

Verfasst: 05.11.2016, 12:07
von RedGuy
Hi, MasterQ32 !

Hey, gar nicht gesehen. Das ist ja optimal, da muss ich mich erst einmal gar nicht um DDC/CI kümmern.

Vielen, vielen Dank !!


Gruss
RedGuy

Re: screen refresh rate

Verfasst: 07.11.2016, 17:48
von RedGuy
Hi !

Der virtuelle Monitor ist schon programmiert (innerhalb von einem Tag) 8-) .

Er simuliert dabei ein Stück weit meine selbst gebaute Grafikkarte.

Diese verwendet für das Erstellen und Aufrechterhalten des VGA - Signals Folgendes:

Ein RGB - Register (also 1 Register je Rot, Grün, Blau) und je einen 8bit Digitalanalogkonverter um die RGB Spannung zu bekommen.


Der einzigste Kniff beim virtuellen Monitor war die aktuelle (je nach Zeit) Dellmonitor - 60Hz - Pixelposition über das aktuelle dt zu berechnen.

Der code hier ist Folgender:

Code: Alles auswählen

// monitor simulation
long	dNanoTime		= System.nanoTime() - m_startTimeStamp;
double	dt				= dNanoTime / Math.pow(10.0d, 9.0d);

long	framePos		= (long)(((dt / 60.0d) - (long)(dt / 60.0d)) * (double)ScreenWidth * (double)ScreenHeight);
				
int		x				= (int)((double)framePos % (double)ScreenHeight);
int		y				= (int)((double)framePos / (double)ScreenHeight);
Ich benutze einen virtuellen Monitor, um eine selbst gebaute Graphikkarte innerhalb einer virtuellen Umgebung testen zu können, ohne diese im vorhinein realisieren zu müssen. Macht rießig Spaß :mrgreen: !!!


Gruss
RedGuy