mikrocontroller.net

Forum: FPGA, VHDL & Co. Zeichengenerator VHDL für ITU 656


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hat jemand Ahnung ob es schon einen fertigen Zeichengenerator in VHDL 
für einen Cyclone III gibt. Hab mit google nix passendes gefunden. Er 
müsste das komplette Alphabet mit Zahlen, Umlauten und einigen 
Sonderzeichen beinhalten.

Grüße

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> fertigen Zeichengenerator in VHDL
Für was brauchst Du denn die Zeichen?
In der grlib[1] gibt es ein Modul (APBVGA), welches einen Zeichen-ROM 
enthält.

Duke

[1] 
http://www.gaisler.com/cms/index.php?option=com_co...

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig 
sein, was fertiges zu finden.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...das Problem ist folgendes...

Ich habe ein Videosignal. Dieses wird auf einem Bildschirm angezeigt. 
Wenn ich einen knopf drücke soll ein Menü über das Videosignal gelegt 
werden. So das man aber immer noch das Videosignal im Hintergrund sieht.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> ...das Problem ist folgendes...
Und was davon kannst du schon?

Der erste Schritt wird mal sein, ein Quadrat einzublenden. Wenn das dann 
stabil steht (nicht zittert oder hüpft), dann kannst du dir mal die 
Zeichensatzgeschichte ansehen...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...daran probiere ich mich schon seit 1 Woche. Entweder zittert das Bild 
oder es läuft oder läuft auseinander oder die Halbbilder sind nicht 
synchron.

dabei zeigt Signaltap, das die Wertzuweisungen passen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...so läuft stabil...

das Testsignal welches ich erzeuge ist zu dem welches ich teste und 
verändern will um 1 Byte / Wort versetzt...deswegen flimmerte das Bild, 
da ich bei jedem Takt ein Synchronwort überschrieben habe.

Was ich aber nuicht verstehe ist, warum dieser Versatz entsteht, da 
beide entitys am selben clock hängen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also...habe alle soweit hin bekommen, das er auf ein x-beliebiges ITU 
Signal reagiert und sich die sichtbaren Bereiche merkt. Auch einen 
Buchstaben konnte ich schon zeichnen.

Jetzt bin ich am grübbeln wie ich einen Zeichensatz erstelle um auch 
ganze Wörter darzustellen.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> Jetzt bin ich am grübbeln wie ich einen Zeichensatz erstelle um auch
> ganze Wörter darzustellen.
In die grlib hast Du immer noch nicht geschaut, oder? Da wird genau 
das gemacht, was Du suchst...

Duke

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch hab schon mal grob reingeschaut :)

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...das übersteigt mein verständnis :(

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte mir das jetzt so, dass ich für jedes Zeichen eine Art BitMap 
erstelle in Form eines Array. Für das A sehe das zum Bsp so aus.

A := (00000000
      01111110
      01111110
      01100110
      01100110
      01111110
      01111110
      01100110
      01100110
      00000000);

Wenn 0 ist macht er nix. wenn 1 kommt wird der Bereich geschwärzt.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> eine Art BitMap
Genau die findest Du in \lib\gaisler\misc\charrom.vhd

Duke

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich seh das so, dass hier aus einem rom die entsprechenden zeichen 
geladen werden.

Ich muss sie ja erstmal erstellen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> A := (00000000
>       01111110
>       01111110
>       01100110
>       01100110
>       01111110
>       01111110
>       01100110
>       01100110
>       00000000);

erstmal muss ich so ein array erstellen..da hängt es gerade noch. 
außedem muss ich ja noch definieren, dass nach 8 bit in die nächste 
zeile gesprungen wird.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> außedem muss ich ja noch definieren, dass nach 8 bit in die nächste
> zeile gesprungen wird.
Ich hätte dazu einfach die oberen Bits eines Vektors verwendet.

Duke

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Ich hätte dazu einfach die oberen Bits eines Vektors verwendet.

wie soll das gehen? das zeichen ist doch pro zeile 8 bit breit. ich muss 
ja jedes zeichen in seiner ausdehnung begrenzen auch auch sagen von wo 
bis wo es geht.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Hauptproblem an dem ich gerade hänge ist, eine routine zu erstellen 
wie ich dei schrift in das video einpräge. Ich muss quasi festlegen, wo 
er das Zeichen einblenden soll und das er das Bitmap bit für bit 
einliest und bei 0 nix verändert, aber bei 1 das pixel schwärzt.

Ich hab gerade voll den inspirativen durchhänger.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
René D. schrieb:
> Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig
> sein, was fertiges zu finden.

und wie hast Du das gemacht. ich finde absolut keinen einstieg

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> René D. schrieb:
>> Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig
>> sein, was fertiges zu finden.
>
> und wie hast Du das gemacht. ich finde absolut keinen einstieg

Du brauchst einen Blockram für deine Daten die Auf den Bildschirm 
dargestellt werden.


Bei der Bildschirm Ausgabe wird je nach dem welcher Wert im 
Bildschirmspeicher steht, die Daten aus einem weiterem Array gelesen. 
Dieses zweite Array ist der Schriftsatz.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.