mikrocontroller.net

Forum: Projekte & Code Programm zum Erstellen eigener Schriftarten (LCD)


Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal ein kleines Programm geschrieben, um eigene Schriftarten auf
dem LCD darzustellen. Das Programm sollte relativ selbsterklärend sein.

Es gibt bis jetzt 3 "berechnungs" Modi:

Spalten:
Für einen Software character generator verwendbar, in dieser
Darstellungsweise wird ein bisschen weniger Flash speicher benötigt,
jedoch etwas mehr Aufwand beim Lesen.

Zeilen:
Diese Daten kann man direkt in den Character Generator RAM des T6963c
schreiben oder auch für seinen eigenen Software Character generator
verwenden.

invertierte Zeilen:
Diese Funktion benötigt Bernhard für seine Textdarstellung auf dem TV,
ob es noch irgendwo anders Anwendung finden kann weis ich nicht.
(Hierbei wird das Byte nicht von rechts nach links gelesen, sondern von
links nach rechts)

Ich hoffe jemand kann damit was anfangen.
Freue mich natürlich auch, wenn jemand nen Verbesserungsvorschlag hat
oder einen Bug findet :)

PS: Das ganze ist in Java geschrieben. Ich habs bei mir mit Java 5 am
laufen sollte aber auch mit 1.4 oder früher laufen.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Super! Genau sowas kann ich gut gebrauchen.
Aber gleich eine unverschämte Frage dazu.
Ich benutze teilweise selbstdefinierte Zeichen, die folgenden Aufbau
haben können:

Waagerechte Folge über x Zeichen, die z.B. eine Rasterlinie mit
Querstrichen darstellen.
Senkrechte Folge über x Zeichen, die z.B. eine Rasterlinie mit
Querstrichen darstellen.
"Bigfonts" in einem Raster von x*y Zeichen.

Sinn der Sache ist es, z.B. den Grafiklayer komplett löschen zu können,
ohne Raster und Anzeigen neu schreiben zu müssen, wenn die grafische
Anzeige neu aufgebaut wird (Oszi, Logikanalyzer asl Beispiel).

Könnte man Dein Programm so erweitern, daß man eine Anzahl Zeichen in
x- und y-Richtung vorgibt, man dann in diesem Raster malt und das als
entsprechende Anzahl Zeichen erzeugt?

Also z.B. X=3, Y=3, entsprechend großes Raster anzeigen, ausmalen und
dann 9 Definitionen erzeugen füe y1x1,y1x2,y1x3,y2x1 usw. usw.

Dann könnte man auch wie früher in einem Spriteeditor Symbole erzeugen,
die man lieber im Textmode anzeigen will.

Maximum wäre theoretisch bei mir 1 Zeilen a 40 Zeichen (also 40),
1 Spalte a 16 Zeilen (16) oder etwa 6x6 (36).

Vielleicht könnte man ja da was machen... ;)

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmjo klar lässt sich machen, nur dann muss ich das Layout noch mal
überdenken :)
Ich werde mal sehen, was sich machen lässt.

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch mal ne frage: du benötigst dann aber Pro Zeichen alle Pixel oder?
Immoment hab ich es ja jetzt so vorgesehen, dass immer eine Reihe Pixel
rechts und unten Frei bleibt, damit die Zeichen nicht aneinander Kleben,
das ist für diese Anwendung dann nicht Sinnvoll oder?
Soll ich auch im normalen Editor alle Pixel zur verfügung stellen?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal Danke für die schnelle Reaktion.

Ja, stimmt, alle Pixel, da hatte ich noch nicht drauf geachtet.
Alle Pixel im normalen Editor (wahlweise) wäre da natürlich auch nicht
verkehrt. Die Berücksichtigung von 8/6-Pixelmode beim T6369c traue ich
mich jetzt garnicht anzusprechen. ;)

Ich hatte schonmal überlegt, sowas in VisualBasic zu schreiben, wäre
das Einzige, was ich noch zur Hand hätte, fehlte aber die Zeit und die
zwingende Notwendigkeit. :(

Naja, mußte VB sowieso wieder rauskramen, um einen speziellen Editor
für .dbf zu schreiben, weil kein Windows-ODBC-Treiber mehr unsere
FoxPro-Variante fehlerfrei schreiben will. Die Software, zu der die
gehören, wird aber eben noch genutzt...

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 6/8er umschaltung sollte auch kein größeres Problem sein.

Ich hab nur immoment keine wirkliche Ahnung, wo ich den bigfonts editor
unterbringen soll ... soll es ein neues Fenster werden oder soll ich die
 Größe des Normalen Fensters an die Pixelzahl anpassen?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hmm, wenn ich es machen würde, würde ich vermutlich das normale Fenster
anpassen, also irgenwo Voreinstellung von x=1 bis X=? und Y=1 bis Y=?.
X=1 und Y=1 wäre dann eben Grundeinstellung. Evtl. noch die Werte
sinnvoll begrenzen, die 6/8-Umschaltung berücksichtigen und dann das
Fenster erzeugen?
Beim Übernehmen dann wieder entsprechend zerlegen?

Hängt natürlich von Deiner Programmstruktur ab, ob das so ginge.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch denke das lässt sich machen. Muss mal gucken ob ich heute zeit
finde.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

keine ungesunde Hektik... ;-)

Mein Projekt, das den Anlaß dazu gab, liegt im Moment wegen Zeitmangel
und Gehäusebau-Problemen etwas auf Eis.
http://www.mikrocontroller.net/forum/read-4-389541.html#new

Die Hard-/Software steht zwar inzwischen zu 80%, der Drahtverhau muß
jetzt aber erstmal eine mechanische Grundlage bekommen...

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja von deinem Oszi hab ich schon gelesen :)

Nene ich Programmiere gern :P

Und da ich hier noch n paar 240x128er LCDs rumliegen habe hab ich mir
auch schon gedanken gemacht damit nen klein Oszi zu bauen :>

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So Update:
- Wahl zwischen 6x8 und 8x8 Schrift
- Leerzeilen ein oder Ausblenden
- Position der Elemente Passt sich an die Größe des "editors" an,
somit ist alles vorbereitet für die BigFonts :>

Die Bigfonts mach ich nächstes mal rein jetzt ist mein Kopf erst ma zu
voll ^^

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Argh ... so schnell kanns gehen man klickt immer zu schnell jetzt hier
mit Anhang

Wenn wer n Bug findet nur her damit xD

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du sollst ja Deinen Bug haben (oder ich bin zu blöd ;)).

Er speichert nicht, macht alles, schreibt aber keine Datei?

Die erste Version übrigens auch nicht, hatte ich garnicht probiert.
Hab vorsichtshalber gerade noch die aktuelle JRE gezogen 5.0 Update 6.

Hat natürlich nicht geholfen. ;(

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmm ich kann gerade nich sagen warum das nich mehr geht ... hab da
dran nichts mehr geändert !?! bei mir gehts auf jeden fall immoment
auch nicht :/ ich werd mich mal eben dran hocken.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo jetzt gehts war n kleiner Fehler drin bei der Überprüfung, ob die
der dateiname zulässig ist (kein null pointer und länge > 0)

Geht jetzt wieder :)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, dafür scheint jetzt das File defekt oben angekommen zu sein...
"invalid or corrupt jarfile" meint er jetzt.

Nimm es nicht tragisch, es gibt wirklich schlimmeres. :-)))))

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hmhm ... auf meiner Platte gehts noch ich probiers noch mal :>

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm muss wohl bei dir was Faul sein, denn wenn ich das alte archiv
runterlade gehts auch ... haste vll beim download n fehler gehabt?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, ich setz mich für heute heulend in die Ecke. ;))))

Die Version von 17:47Uhr . downlaod - starten -geht.
Beide neueren Versionen mault das blöde JRE hier rum?!?
Na egal, schaue ich morgen aml, jetzt kann ich nicht neustarten, der
macht noch was im Hintergrund.

Danke für Deine Mühe und schönen Sonntagabend noch. :)

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm sehr merkwürdig aber naja nen schönen Abend dir noch :) vll finde
ich ja auch bei mir nen Fehler.

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So noch ne Frage zu den Bigfonts ... wie soll ich die Formatieren?
Alle bytes hintereinander also
.db 54,54,6,8,6,8,4,68,6,31,84,215,13,151,1,55,211,133 ;Kommentar
oder für jedes teilZeichen eine eigene Zeile? also
.db 54,54,6,8,6,8,4,68 ; Kommentar(1)
.db 6,31,84,215,13,151,1,55; Kommentar(2)
usw?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde die getrennte Version bevorzugen. Hätte den Vorteil, daß man
Duplikate, die sich vielleicht ergeben, einfach rauswerfen kann.
Da zumindest ich das dann sowieso erst machen würde, wenn ich den
Zeichencode habe und die zugehörigen Ausgaben zusammenstelle und
da fällt mir doch glatt was ein...
hast Du noch Platz für eine Einstellung? Erster Zeichencode?
Den dann als Kommentar fortlaufend mit ausgeben?
Letztlich definiert man ja dann irgendwo die Ausgabe auch wieder mit
.db Zeichencode,Zeichencode usw. usw.

Die Definitionen schicke ich ja sowieso im Loop zum Char-Ram, die
Zuordnung bliebe also immer erhalten, solange man nicht mit Hand drin
ändert.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich hab deinen Text jetzt zum 3. mal durchgelesen und endlich
verstanden was du meinst ... ist wohl schon etwas spät :>
Die Zeichenketten werden ja nach dem ASCII code Sortiert jetzt könnte
ich einfach den Listenindex dahinterschreiben ... ist kein Problem

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok das war einfach ... probiers mal damit dsa war doch was du meintest
oder? ^^

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
mal ne ganz dumme Frage für nicht Java Kenner. Wie führt man das
Programm aus? Wo muss ich klicken damit es gestartet wird?

mfg
Stefan

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du Java RE oder SDK drauf hast (also einfach nur Java runtime von
java.sun.org) sollte ein doppelklick reichen :)

Falls dir WinAce oder ein anderes KomprimierungsProgramm die
verknüpfung überschrieben hat kannst du mal Probieren in der cmd "java
-jar char_gen.jar" einzutippen (musst dich hierbei natürlich im
gleichen verzeichnis befinden)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke, jetzt läuft es. Woran es lag: Ich hab die Datei runtergeladen
und gespeichert. Es wurde aber nicht unter char_gen.jar sondern unter
char_gen.zip gespeichert. Warum auch immer. Wenn ich da dann
draufklicke entpackt mir Winzip das zurück in die Sourcen. Da konnte
ich natürlich nichts von ausführen. Jetzt grade nachmal runtergeladen
und in char_gen.jar zurückbenannt, nun gehts. Zwischenzeitlich habe ich
mir nun auch das Java SDK und EDK runtergeladen und installiert. Ich
hatte auch versucht das was er mir da entpackt hat neu zu compilieren
und dann auszuführen, ging aber auch nicht :-) Naja, jetzt habe auch
ich mal einen Grund mich mit Java zu beschäftigen :-)

mfg
Stefan

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Java wird während der laufzeit interpretiert (bzw der bytecode) also
hätte "java frame" im entpackten ordner auch funktionert. Bei den
.JARs hat mans halt alles schön in einer Datei.

Freue mich aber auch über Feedback zum programm :P

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hauke,

sehr schöne Idee!!

Könntest Du uns bitte Dein Programm als ZIP-Datei zur Verfügung
stellen?

Danke

Bernhard

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Bernhard Schulz:

hat es einem bestimmten Grund mit dem Zip?

.jar ist eine Java-Applikation, läßt sich einfach per Doppelklick
starten, wenn das Sun-Java-SRE installiert ist.

Ansonsten bei Problemen siehe obige Postings, falls Windows da an den
Endungen rumpfuscht.

Gruß aus Berlin
Michael

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael,

>hat es einem bestimmten Grund mit dem Zip?

Ich dachte, *.jar wäre eine gepacktes Programm.

Sorry, ich ziehe meine Anfrage zurück.

Bernhard

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*.jar ist zwar gepackt aber lässt sich auch wieder entpacken. Ich hab
alle Sourcen mit rein gepackt also kannst du dir auch den Quellcode
angucken falls du willst (aber vorsicht ist nichts kommentiert ^^)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du übertriffst Dich selbst mit dem Tempo. :))))

so nach meinem Windows-Neustart geht es auch wieder mit Doppelklick,
muß wohl die Installatione vom JRE Update6 noch nicht komplett gewesen
sein gestern abend.

Mit dem Index gefällt mir so erstmal gut, ist ja mehr für die
angedachten Bigfonts u.ä., wenn ich da z.B. ein Zeichen erstelle und
hinterher den Kram aneinander hänge, siehe ich so, wo was neues anfängt
und wo das Teil in der Anordnung hingehört.
Ich denke einfach, wenn ich ein halbes Jahr später in solch eine
Definition hineinschaue, hilft das dann doch etwas. ;)

Speichern geht jetzt auch, aaaaber... er speichert den Index nicht mit
in den Kommentar, wenn er ausgewählt war? ;(

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich guck mal eben drüber ich glaub ich weis schon wo dran es liegt

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So das ging auch schnell :)

Ich speicher jetzt, was Wirklich in der Liste drin steht, und nicht was
im Array steht

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hauke

ich muss mal etwas naiv fragen,

auf meinem betagten PC läuft derzeit Windows 98.

Wo bekomme ich das Java her?

Bernhard

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://java.sun.com/javase/downloads/index.jsp

Da lädst du dir "Java Runtime Environment (JRE) 5.0 Update 8" runter


Installieren und das wars

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo ich hab n bissl weiter gemacht und den Editor an die BigFonts
angepasst.

Nur erst mal zum testen ob es so genehm ist :>

Übernommen werden immer noch nur die Daten aus der oberen linken
Zelle.

Der Code ist jetzt unheimlich kompliziert und mir reicht es für heute
^^

Viel spass beim testen

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es ist so genehm. :))

Das die Geschichte etwas kompliziert wird. habe ich schon
befürchtet...

Zumindest hat es sich hier im "Super-Schnell-Test" nicht daneben
benommen, ich komme aber auch erst am Wochenende dazu, da genauer
rumzuspielen.
Muß erstmal Brötchen verdienen.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo jetzt sind sowohl der Code als auch ich verrückt ... :)
Aber es Funktioniert (denke ich)

Ich wette es sind noch Bugs drin aber ich bin jetzt zu durcheinander um
alles zu testen ^^

Feedback erwünscht !! :)

PS: In der "Ausgabe" Zeile wird immoment nichts ausgegeben, weil ich
das Prinzip etwas geändert habe. In der Liste sieht man nun nicht mehr
die Daten die erzeugt wurden sondern nur Welche Zeichen erstellt wurden
und ob es sich dabei um einen BigFont handelt (und wenn ja wird auch
angegeben von welcher größe z.b. 2x2)

Autor: Michael U. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vermutlich hast Du die Wette um die Bugs gewonnen... :)
Im Anhang die Ausgabedatei.
Einstellung 3x3, 6x8Bit-Font, keine Leerzeile, kein Index
Links oben sind 6x8 Pixel aktiviert, der Rest ist leer.

Hmmmmmmm....

Ich bastel erstmal meine TCP-Pakete weiter. ;)

Schönes Wochenende :)

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers jetzt mal ... ich hatte es nur mit 2x2 Fonts probiert da ging
alles ^^ Aber ich hoffe jetzt läufts.

Als nächstes will ich noch einbauen, dass man "Malen" kann, d.h. mit
gedrückter maustaste drüber werden die boxen aktiviert und dass man
verschieden große "stifte" nehmen kann, sodass mehrere Pixel auf
einmal aktiviert werden können.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
argh natürlich mal wieder zu früh geklickt und dann zu spät gemerkt ^^

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja, sieht jetzt ok aus.

Zu Deiner Mal-Idee: das habe ich mich garnicht mehr getraut zu
fragen.......

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das is vermutlich einfacher als die BigFonts :)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Hauke Radtki:

naja, habe von Jave schlicht garkeine Ahnung, weiß also nicht, welche
Unterstützung es dafür bietet.

Hmm, ich könnte gerade Deinen Satz mit dem verrückten Code von oben
wiederholen...
Die Buffer- und Prüfsummen-Geschichte für TCP war eigentlich bis eben
noch ok bei meiner AVR-Ethernet-Spielerei.
Jetzt plötzlich nicht mehr?!?!? ;)

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:)) Java Unterstützt sowas nur indirekt ... man kann halt herausbekommen
wo der Zeiger ist, und ob/weche komponente sich unter ihm befindet, so
sollte das machbar sein.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und auf ein neues ...

Malen kann man jetzt mit gedrückter ALT taste wird gemalt mit
gedrückter  STRG taste wird gelöscht.
Das liegt daran, dass ich keine Funktion in Java gefunden habe mit der
man überprüfen kann ob die maustaste gedrückt ist ...

Das Malen ist bei einer großen anzahl von pixeln langsamer, einfach aus
dem grund weil ich nicht rausfinden konnte, was welcher pixel das
mouseOver ereignis auslöst und so alle Pixel durch gehen muss und
gucken muss ob sich die maus über einem davon befindet, nicht Ideal
aber es funktioniert erst mal, man darf halt die maus nicht zu schnell
bewegen.

Auch das aussehen der Pixel ist jetzt eher an ein LCD angelehnt ...

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

warum mußt Du Dir unbedingt den Sonntag versauen? ;))

>Auch das aussehen der Pixel ist jetzt eher an ein LCD angelehnt ...

Bei mir eher ein ausgeschaltetes LCD, will sagen, keine Anzeige
irgendwelcher Pixel, leere Fläche dort.

Scheint aber zu malen, speichert die Daten, ich sehe eben nur nichts.

Naja, man kann eben nicht alles haben. :)))))

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte natürlich auch das was man Exportiert hat testen ...
irgendwie hat er die Bilder nicht mit reingepackt. Ich probier das mal
hinzubekommen :/

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo jetzt gehts ... Java is wirklich umständlich bei Dateizugriffen -.-

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo jetzt geht das Zeichnen etwas schneller und Ich hab den Dicken
Pinsel eingebaut

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

scheint jetzt alles richtig zu machen. :))

Werde wohl mal die paar nötigen Zeichen meines Bigfont malen und das
Ergebnis in meinen Code vom meinem "Super-"Oszi werfen, dann sehe ich
ja, was dabei rauskommt. ;)

Naja, ansonsten nochmal Gratulation, ist richtig gut geworden so.
Mal schauen, ob es noch andere interessiert.

Ansonsten lehne ich mich jetzt zurück und warte,bis Du die Geschichte
mit den mouse-button-events klarkommt, Google hat nur irgendwas zu
SwingUtilities in dem Zusammenhang rausgerückt.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok das war einfach ... gewusst wie :))
Jetzt kann man einfach Zeichnen wie man es gewöhnt ist :)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, warum nicht gleich so... ;)))

Ein Problem ist noch in der Setz-Routine. Einzel-Pixel lassen sich
nicht setzen, beim Klick auf Links wird der Pixel markiert, beim
Loslassen ist er wieder weg...
Bein malen ist es ok, beim Löschen mit Rechts geht auch alles richtig.
Liegt wohl daran, daß gesetzte Pixel mit Links gelöscht werden?
Sollten eben nur noch mit Rechts gelöscht werden, denke ich.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das Problem hab ich auch gerade bemerkt, liegt daran, dass wenn ein
event ausgeführt, sobald die linke maustaste über einem pixel gedrückt
wird, dass das Pixel aktiviert. Da es jedoch checkboxen sind, und
dadurch die funktion haben sobald ein klick ausgeführt wird (also in
diesem fall dann die taste wieder losgelassen wird) der zustand
getoggelt wird. D.h. beim drücken aktiviert beim loslassen getoggelt ^=
ausgeschaltet

Ich arbeite dran :)

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Soo das wäre auch geklärt und ein kleiner bug mit dem großen Pinsel ist
auch gelöst

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nö nö, is nich..... ;))

Setz mal einen Pixel und dann lösche ihm mit Rechts gleich wieder.
Wenn Du einen anderen setzt, darfst Du den ersten löschen.
Zieh eine Linie und dann lösche nur den ersten Pixel usw.

Eigentlich lustig, kannst Du als Game vermarkten. ;-)))))))))

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut dass es aufmerksame Tester wie dich gibt :))))

So jetzt aber.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sieht jetzt ok aus. :)

Naja, Tester... dafür bin ich bei meinen Bekannten
berühmt-berüchtigt...

Kann ich ja an der Ergonomie rummaulen, wo die Funktionen gehen. :)

- Er warnt nicht, wenn beim Save die Ausgabedatei schon existiert
- Warum .txt als Vorgabe und nicht .asm
- Wenn man schnell malt, sind waagerechte/senkrechte Linien schwer zu
halten, in Grafikprogrammen kann man da meist Shift festhalten, dann
werden nur waagerechte/senkrechte Linien gezeichnet

Soll ich weitermachen? ;-)))))))))))))

Nee, lieber nicht, gefällt mir ausgesprochen gut bisher.

Danke nochmal für die Mühe.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Linien hab ich mir schon gedacht, nur ich weis wegen dem
vier-dimensonalen Pixel array noch nicht ganz wie ich das realisieren
soll ^^

txt war nur das erste was mir eingefallen ist ... asm ist aber ganz
leicht machbar :>

Das mit dem Warnen, wenn die Datei schon existiert sollte ich auch noch
hinbekommen,

und ja mach nur weiter :>

Nur ich denke heute werde ich vorerst nix mehr machen.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Aufgrund extremer langeweile hab ich die beiden ersten sachen schnell
mal Implementiert.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo ich hab noch n bisschen dran geschraubt.

Bugfixes:
- Beim Speichern konnte es passieren, dass in die ausgewählte Datei
gespeichert wird, obwohl abbrechen geklickt wurde

-Das Zeichnen selbst verursacht jetzt keine CPU last mehr(bzw nahezu
keine), die alte Version war immer bei 100% (jaja bei dualcore nur bei
50 ....)


Jetzt noch ne Frage:
Soll ich auch "Pinsel" größer einbauen als 2x2 Pixel?

Was noch kommt:
Linien Zeichnen durch das drücken der Shift-taste in eine Richtung
fixieren

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gleich mal reinschauen. :)

Für mich sind größere Pinsel eigentlich nicht nötig, der Zeichenbereich
ist ja nicht sooo riesig.

Gruß aus berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach was ich auch noch vergessen hab was ich noch einbauen will:

Dass das Programm eine .properties Datei erzeugt in der die letzten
benutzten einstellungen gespeichert werden (größe,
Zeilenstart-,Trenn-,Endzeichen usw)

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo dar war erst mal n dicker bug beim erstellen von 8x8 schriftarten
...

Und das Programm erstellt jetzt eine charGen.properties, in der alle
einstellungen gespeichert werden.

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
zu schnell geklickt ...

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenns nich die meisten runterladen ... n bisschen Feedback hätte
ich trotzdem gerne von den paar :))

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, sind bestimmt ein paar mit der 3-G-Methode dabei...
Gezogen-Gesehen-Gelöscht. ;)

Will nicht hoffen, daß die 4-G-Methode auch dabei ist......

Hab nur kurz reingeschaut, machte offenbar noch, was es sollte.
Da ich meine Gehäuseprobleme mit dem Oszi/.../... noch nicht komplett
gelöst habe, wartet die Software und damit die praktische Nutzung
Deines Programms leider noch etwas.

Gruß aus Berlin
Michael

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab das Programm mal runtergeladen und versucht zu testen. Nach  save
kann ich aber die abgespeicherte Datei nirgends finden (vielleicht zu
blöd die software zu bedienen ;)).

Gruß Slowflyer

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du auf Save drückst sollte ein Dialog erscheinen, in dem du
auswählen kannst, wo du die Datei Speichern willst.

Wenn nicht is da was faul :)

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Dialog-Fenster erscheint. Wenn ich den Dateinamen eingegeben habe
und auf speichern clicke, taucht die Datei weder im angegebenen
Verzeichnis noch sonst wo auf der Festplatte auf. Gibt es vielleicht
irgendwelche Bedingungen, die vorher erfüllt sein müssen?

Gruß, Slowflyer

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die einzige bedingung ist, dass du auf das verzeichnis schreibrechte
hast.

Welche Java Version hast du?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nö...
Die einzige Bedingung ist, das Du wieder heile machst... ;)

Speichert nicht mehr.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Tatsache ...
Speichern tut er schon noch. jedoch nur, wenn die Datei schon vorhanden
ist.

Ist jetzt aber gefixed also sollte es gehen :)) Nein, es sollte nicht
es muss gehen ! :P

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

na geht doch, Du willst ja nur die Leute verwirren... ;))

Wollte ich letztens schon anmerken: er überschreibt bei mir immernoch
eine bestehende Datei ohne Warnung.

Gruß aus Berlin
Michael

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher? kommt kein Neues Fenster, das dich fragt ob du die bestehende
Datei überschreiben willst?

Ah ich glaub ich habs gefunden. Wenn die Datei existiert, du jedoch nur
den Dateinamen ohne endung in das Feld schreibst überschreibt er die
Datei ohne Warnung. Ich arbeite dran.

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo ich mach gerade n komplettes redisign der Software, weil das jetzt
doch alles etwas unübersichtlich geworden ist.

Möglich wirds dann auch sein:
- Rechtecke,Linien usw zu Zeichnen (Kreise vorerst nicht, da Java die
Kreise miserabel berechnet, und sie bei geringen auflösungen deswegen
schei** aussehen)

- Fertige Schriftarten zu Importieren und zu Editieren

- Bilder zu Importieren (auch runterscalierbar)

- Das ganze als C oder Assembler code Exportieren

- Bereits erstellte eigene Schriftarten wieder laden


Aber da ich euch nicht mit halbfertigem zeugs rumnerven will, gibts das
erst, wenns wirklich einigermaßen gut funktioniert.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooooooo ...
Ich hab mal n bisschen weiter gemacht, das ist bei rausgekommen.
Ist noch lange nicht fertig, aber der Editor selbst ist nahezu fertig.
Speichern/Exportieren kann man noch nix, aber das kommt noch.

Was noch kommt:
- Ein Editor für Bilder ( Man kann dann Bilder laden (und auch auf die 
Größe skalieren), Farbtiefe anpassen, damit sie für das eigene LCD 
geeignet ist (z.b. auch für das S65 oder das Nokia Display) und dann 
auch als Code Exportieren)

-Gefüllte Ovale zeichnen geht noch nicht, auch ein Oval zu zeichnen 
selbst funktioniert nicht Optimal

- "dicke" stifte gehen nicht, d.h. alle Linien, Rechtecke, Ovale sind 
nur 1 Pixel dick

- Speichern/Laden der erstellten Schriftart / Exportieren als Code

- Die Auflistung der Zeichen ist noch nicht fertig. Man wird noch 
Zeichen Hinzufügen / Löschen können. Änderungen der Werte (z.b. des 
HexCodes) wird auch die anderen Werte Aktualisieren (Dec wert, Ascii 
zeichen)

- Man wird die Farben, mit denen man Zeichnet noch Auswählen können 
(immoment ist linksklick schwarz und rechtsklick weiß)

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Argh .... mal wieder was vergessen ^^

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

damit Du nicht denkst, Du führst hier nur Selbstgespräche... ;)

Sieht sehr interessant aus, ich warte mal auf die Fortsetzung.

Oval sieht doch eigentlich ok aus?

Gruß aus Berlin
Michael

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aussehen tuts gut .. ja aber es ruckelt beim zeichnen, und wenn das oval 
ne geringe höhe oder breite hat ist es auch nich so schön (es fehlen 
pixel). Hab heute noch eine Füllmethode eingebaut mit der ich auch das 
Oval füllen werde. funktioniert shcon ganz gut.

Damit das ganze praxistauglich wird werde ich als nächstes das 
Exportieren implementiren.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
um... buoni, realmente buoni luogo e molto utile;) 
http://www.sh8cale.org/teens

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bittle gehen nicht auf die letzte Link :-(

Autor: I_NEED_INPUT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen habe mir beide Prog´s Hauke herunter geladen funktioniert 
auch super DANKE an dieser Stelle für den Aufwand und die Investierte 
Zeit.

Ich bin noch nicht so lange im Programmiergeschäft mit Assembler und C, 
Java etc. unterwegs. Habe mir vor kurzem nen GLCD mit KS0108 angeschafft 
nen Prog in asm hab ich mir auch so hingebogen.

Mein anliegen ist dieses, ich weiß nicht wie ich meinem avr klar mache, 
wenn ich nen text ausgeben will er auf meine Tabelle mit den 
gespeicherten bzw codierten Buchstaben zugreifen soll und mir das 
gespeicherte Wort auf dem Display ausgeben soll? Irgend wie so!?.

Hm ... hoffe mal das mir jemand vielleicht mal nen brocken Code posten 
kann.

Hier mein´s:

.....

;***************************************************************
; Hauptprogramm
; Schreibt "ATmega8535" in die erste Zeile und "LCD-Routine"
; in die zweite Zeile des LCDs.
;***************************************************************

main:  
    ldi  temp1,LOW(RAMEND);setze Stack-Pointer
    out  SPL,temp1   ;an das SRAM-Ende
    ldi   temp1,HIGH(RAMEND)       
                out   SPH,temp1

    ldi  r19, LED1      ;LED1 AN
    out  PORTD, r19

    rcall  init        ;PORTA initialisieren
    
    ldi  r19, LED2      ;LED2 AN
    out  PORTD, r19

    ldi  buffer,set_LCD    ;setze LCD Funktion
    rcall  write_instr

    ldi  buffer,LCD_on    ;schalte LCD ein
    rcall  write_instr

    ldi  buffer,clear_LCD  ;loesche Anzeige
    rcall  write_instr

    ldi  buffer,entry_mode  ;Eingabemodus
    rcall  write_instr

    ldi  r19, LED3      ;LED1 & 2 AN
    out  PORTD, r19

;***************************************************************
;Holt den Text 'ATmega8535' aus der Tabelle und schreibt diesen
;in die erste Zeile der Anzeige
;***************************************************************
  ldi  counter,6    ;Zeichenzaehler
;  ldi  ZL,LOW(Tabelle1*2)  ;Low-Zeiger auf Tabellenanfang
;  ldi  ZH,HIGH(Tabelle1*2)  ;High-Zeiger auf Tabellenanfang

  ldi  ZL,LOW(FONT5x7*2)  ;Low-Zeiger auf Tabellenanfang
  ldi  ZH,HIGH(FONT5x7*2)  ;High-Zeiger auf Tabellenanfang

loop_msg1:
  lpm  buffer,Z+    ;hole Zeichen aus Tabelle
      rcall  write_data    ;Zeichen uebergeben

;  lpm  buffer,Z+    ;hole Zeichen aus Tabelle
;      rcall  write_data    ;Zeichen uebergeben
;                     ;schreibe Zeichen in LCD
        adiw    ZL,1                    ;16-Bit Zeiger erhoehen
        dec     counter                 ;alle Zeichen gesendet?
        brne  loop_msg1    ;Nein! Sende naechstes Zeichen

;***************************************************************
;Holt den Text 'LCD-Routine' aus der Tabelle und schreibt diesen
;in die zweite Zeile der Anzeige
;***************************************************************
    
  ldi  buffer,0b11000000  ;LCD-Startadresse 2.Zeile
  rcall  write_instr    ;sende Befehl
  ldi  counter,11    ;Zeichenzaehler
  ldi  ZL,LOW(Tabelle2*2)  ;Low-Zeiger auf Tabellenanfang
  ldi  ZH,HIGH(Tabelle2*2)  ;High-Zeiger auf Tabellenanfang

;loop_msg2:  
    
  lpm        ;hole Zeichen aus Tabelle
  mov  buffer,zeichen    ;Zeichen uebergeben
  rcall  write_data        ;schreibe Zeichen in LCD
  adiw    ZL,1                    ;16-Bit Zeiger erhoehen

;no_carry2:  
    
  dec  counter      ;alle Zeichen gesendet?
  brne  loop_msg2    ;Nein! Sende naechstes Zeichen



;Endlosschleife. AVR zuruecksetzen, um Programm erneut zu starten

loop:  rjmp  loop

;***************************************************************
;Tabelle 1 mit dem Text "ATmega8535", der in die 1.Zeile
;geschrieben werden soll
;***************************************************************

Tabelle1:  .DB "ATmega8535"

;***************************************************************
;Tabelle 2 mit dem Text "LCD-Routine", der in die 2.Zeile
;geschrieben werden soll
;***************************************************************

Tabelle2:  .DB "LCD-Routine"

.db 126,127,19,19,19,127,126,0 ;  A(65) Index: 0
.db 127,127,107,107,107,127,62,0 ;  B(66) Index: 1
.db 127,127,99,99,99,99,99,0 ;          C(67) Index: 2
.db 127,127,99,99,99,62,28,0 ;          D(68) Index: 3
.db 127,127,107,107,107,107,0,0 ;  E(69) Index: 4
.db 127,127,27,27,27,27,0,0 ;          F(70) Index: 5
.db 62,127,99,99,107,123,59,0 ;    G(71) Index: 6
.db 127,127,8,8,8,127,127,0 ;    H(72) Index: 7
.db 0,0,65,127,127,65,0,0 ;    I(73) Index: 8
.db 48,64,65,127,63,1,0,0 ;    J(74) Index: 9
.db 127,127,8,28,119,99,0,0 ;    K(75) Index: 10
.db 127,127,96,96,96,96,0,0 ;    L(76) Index: 11
.db 127,127,6,12,6,127,127,0 ;    M(77) Index: 12
.db 127,127,6,12,24,127,127,0 ;    N(78) Index: 13
.db 62,127,99,99,99,127,62,0 ;    O(79) Index: 14
.db 127,127,19,19,19,31,14,0 ;    P(80) Index: 15
.db 62,127,99,107,115,63,94,0 ;    Q(81) Index: 16
.db 127,127,11,19,51,111,78,0 ;    R(82) Index: 17
.db 0,70,73,73,73,50,0,0 ;    S(83) Index: 18
.db 3,3,127,127,3,3,0,0 ;    T(84) Index: 19
.db 63,127,96,96,96,127,63,0 ;    U(85) Index: 20
.db 15,31,56,96,56,31,15,0 ;    V(86) Index: 21
.db 127,127,48,24,48,127,127,0 ;  W(87) Index: 22
.db 99,119,54,8,54,119,99,0 ;    X(88) Index: 23
.db 3,6,124,124,6,3,1,0 ;    Y(89) Index: 24
.db 67,99,115,123,111,103,99,0 ;  Z(90) Index: 25

.EXIT

Ich weiß zahlen wird er nicht ausgeben da nicht in der Tabelle.

Danke im Voraus :-))

Autor: I_NEED_INPUT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OH ist einiges auskommentiert nicht beachten!

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]
  • [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.