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


von Hauke Radtki (Gast)


Angehängte Dateien:

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.

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


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?

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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?

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Lesenswert?

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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 :>

von Hauke Radtki (Gast)


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 ^^

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

Argh ... so schnell kanns gehen man klickt immer zu schnell jetzt hier
mit Anhang

Wenn wer n Bug findet nur her damit xD

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


Angehängte Dateien:

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 :)

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

hmhm ... auf meiner Platte gehts noch ich probiers noch mal :>

von Hauke Radtki (Gast)


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?

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Lesenswert?

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

von Hauke Radtki (Gast)


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?

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

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

von Stefan (Gast)


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

von Hauke Radtki (Gast)


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)

von Stefan (Gast)


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

von Hauke Radtki (Gast)


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

von Bernhard S. (bernhard)


Lesenswert?

Hallo Hauke,

sehr schöne Idee!!

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

Danke

Bernhard

von Michael U. (Gast)


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

von Bernhard S. (bernhard)


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

von Hauke Radtki (Gast)


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 ^^)

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Lesenswert?

Ich guck mal eben drüber ich glaub ich weis schon wo dran es liegt

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

So das ging auch schnell :)

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

von Bernhard S. (bernhard)


Lesenswert?

@Hauke

ich muss mal etwas naiv fragen,

auf meinem betagten PC läuft derzeit Windows 98.

Wo bekomme ich das Java her?

Bernhard

von Hauke Radtki (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

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)

von Michael U. (Gast)


Angehängte Dateien:

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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michael U. (Gast)


Lesenswert?

Hallo,

ja, sieht jetzt ok aus.

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

Gruß aus Berlin
Michael

von Hauke Radtki (Gast)


Lesenswert?

Das is vermutlich einfacher als die BigFonts :)

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


Angehängte Dateien:

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 ...

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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 :/

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

Sooo jetzt gehts ... Java is wirklich umständlich bei Dateizugriffen -.-

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

Sooo jetzt geht das Zeichnen etwas schneller und Ich hab den Dicken
Pinsel eingebaut

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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 :)

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

Gut dass es aufmerksame Tester wie dich gibt :))))

So jetzt aber.

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

Aufgrund extremer langeweile hab ich die beiden ersten sachen schnell
mal Implementiert.

von Hauke Radtki (Gast)


Angehängte Dateien:

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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)

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


Angehängte Dateien:

Lesenswert?

zu schnell geklickt ...

von Hauke Radtki (Gast)


Lesenswert?

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

von Michael U. (Gast)


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

von Slowflyer (Gast)


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

von Hauke Radtki (Gast)


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 :)

von Slowflyer (Gast)


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

von Hauke Radtki (Gast)


Lesenswert?

Die einzige bedingung ist, dass du auf das verzeichnis schreibrechte
hast.

Welche Java Version hast du?

von Michael U. (Gast)


Lesenswert?

Hallo,

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

Speichert nicht mehr.

Gruß aus Berlin
Michael

von Hauke Radtki (Gast)


Angehängte Dateien:

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

von Michael U. (Gast)


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

von Hauke Radtki (Gast)


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.

von Hauke Radtki (Gast)


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.

von Hauke R. (lafkaschar) Benutzerseite


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ß)

von Hauke R. (lafkaschar) Benutzerseite


Angehängte Dateien:

Lesenswert?

Argh .... mal wieder was vergessen ^^

von Michael U. (Gast)


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

von Hauke R. (lafkaschar) Benutzerseite


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.

von ... (Gast)


Lesenswert?

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

von Ale (Gast)


Lesenswert?

Bittle gehen nicht auf die letzte Link :-(

von I_NEED_INPUT (Gast)


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:
1
.....
2
3
;***************************************************************
4
; Hauptprogramm
5
; Schreibt "ATmega8535" in die erste Zeile und "LCD-Routine"
6
; in die zweite Zeile des LCDs.
7
;***************************************************************
8
9
main:  
10
    ldi  temp1,LOW(RAMEND);setze Stack-Pointer
11
    out  SPL,temp1   ;an das SRAM-Ende
12
    ldi   temp1,HIGH(RAMEND)       
13
                out   SPH,temp1
14
15
    ldi  r19, LED1      ;LED1 AN
16
    out  PORTD, r19
17
18
    rcall  init        ;PORTA initialisieren
19
    
20
    ldi  r19, LED2      ;LED2 AN
21
    out  PORTD, r19
22
23
    ldi  buffer,set_LCD    ;setze LCD Funktion
24
    rcall  write_instr
25
26
    ldi  buffer,LCD_on    ;schalte LCD ein
27
    rcall  write_instr
28
29
    ldi  buffer,clear_LCD  ;loesche Anzeige
30
    rcall  write_instr
31
32
    ldi  buffer,entry_mode  ;Eingabemodus
33
    rcall  write_instr
34
35
    ldi  r19, LED3      ;LED1 & 2 AN
36
    out  PORTD, r19
37
38
;***************************************************************
39
;Holt den Text 'ATmega8535' aus der Tabelle und schreibt diesen
40
;in die erste Zeile der Anzeige
41
;***************************************************************
42
  ldi  counter,6    ;Zeichenzaehler
43
;  ldi  ZL,LOW(Tabelle1*2)  ;Low-Zeiger auf Tabellenanfang
44
;  ldi  ZH,HIGH(Tabelle1*2)  ;High-Zeiger auf Tabellenanfang
45
46
  ldi  ZL,LOW(FONT5x7*2)  ;Low-Zeiger auf Tabellenanfang
47
  ldi  ZH,HIGH(FONT5x7*2)  ;High-Zeiger auf Tabellenanfang
48
49
loop_msg1:
50
  lpm  buffer,Z+    ;hole Zeichen aus Tabelle
51
      rcall  write_data    ;Zeichen uebergeben
52
53
;  lpm  buffer,Z+    ;hole Zeichen aus Tabelle
54
;      rcall  write_data    ;Zeichen uebergeben
55
;                     ;schreibe Zeichen in LCD
56
        adiw    ZL,1                    ;16-Bit Zeiger erhoehen
57
        dec     counter                 ;alle Zeichen gesendet?
58
        brne  loop_msg1    ;Nein! Sende naechstes Zeichen
59
60
;***************************************************************
61
;Holt den Text 'LCD-Routine' aus der Tabelle und schreibt diesen
62
;in die zweite Zeile der Anzeige
63
;***************************************************************
64
    
65
  ldi  buffer,0b11000000  ;LCD-Startadresse 2.Zeile
66
  rcall  write_instr    ;sende Befehl
67
  ldi  counter,11    ;Zeichenzaehler
68
  ldi  ZL,LOW(Tabelle2*2)  ;Low-Zeiger auf Tabellenanfang
69
  ldi  ZH,HIGH(Tabelle2*2)  ;High-Zeiger auf Tabellenanfang
70
71
;loop_msg2:  
72
    
73
  lpm        ;hole Zeichen aus Tabelle
74
  mov  buffer,zeichen    ;Zeichen uebergeben
75
  rcall  write_data        ;schreibe Zeichen in LCD
76
  adiw    ZL,1                    ;16-Bit Zeiger erhoehen
77
78
;no_carry2:  
79
    
80
  dec  counter      ;alle Zeichen gesendet?
81
  brne  loop_msg2    ;Nein! Sende naechstes Zeichen
82
83
84
85
;Endlosschleife. AVR zuruecksetzen, um Programm erneut zu starten
86
87
loop:  rjmp  loop
88
89
;***************************************************************
90
;Tabelle 1 mit dem Text "ATmega8535", der in die 1.Zeile
91
;geschrieben werden soll
92
;***************************************************************
93
94
Tabelle1:  .DB "ATmega8535"
95
96
;***************************************************************
97
;Tabelle 2 mit dem Text "LCD-Routine", der in die 2.Zeile
98
;geschrieben werden soll
99
;***************************************************************
100
101
Tabelle2:  .DB "LCD-Routine"
102
103
.db 126,127,19,19,19,127,126,0 ;  A(65) Index: 0
104
.db 127,127,107,107,107,127,62,0 ;  B(66) Index: 1
105
.db 127,127,99,99,99,99,99,0 ;          C(67) Index: 2
106
.db 127,127,99,99,99,62,28,0 ;          D(68) Index: 3
107
.db 127,127,107,107,107,107,0,0 ;  E(69) Index: 4
108
.db 127,127,27,27,27,27,0,0 ;          F(70) Index: 5
109
.db 62,127,99,99,107,123,59,0 ;    G(71) Index: 6
110
.db 127,127,8,8,8,127,127,0 ;    H(72) Index: 7
111
.db 0,0,65,127,127,65,0,0 ;    I(73) Index: 8
112
.db 48,64,65,127,63,1,0,0 ;    J(74) Index: 9
113
.db 127,127,8,28,119,99,0,0 ;    K(75) Index: 10
114
.db 127,127,96,96,96,96,0,0 ;    L(76) Index: 11
115
.db 127,127,6,12,6,127,127,0 ;    M(77) Index: 12
116
.db 127,127,6,12,24,127,127,0 ;    N(78) Index: 13
117
.db 62,127,99,99,99,127,62,0 ;    O(79) Index: 14
118
.db 127,127,19,19,19,31,14,0 ;    P(80) Index: 15
119
.db 62,127,99,107,115,63,94,0 ;    Q(81) Index: 16
120
.db 127,127,11,19,51,111,78,0 ;    R(82) Index: 17
121
.db 0,70,73,73,73,50,0,0 ;    S(83) Index: 18
122
.db 3,3,127,127,3,3,0,0 ;    T(84) Index: 19
123
.db 63,127,96,96,96,127,63,0 ;    U(85) Index: 20
124
.db 15,31,56,96,56,31,15,0 ;    V(86) Index: 21
125
.db 127,127,48,24,48,127,127,0 ;  W(87) Index: 22
126
.db 99,119,54,8,54,119,99,0 ;    X(88) Index: 23
127
.db 3,6,124,124,6,3,1,0 ;    Y(89) Index: 24
128
.db 67,99,115,123,111,103,99,0 ;  Z(90) Index: 25
129
130
.EXIT

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

Danke im Voraus :-))

von I_NEED_INPUT (Gast)


Lesenswert?

OH ist einiges auskommentiert nicht beachten!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.