Hallo
sorry, bin immer noch am selben Thema, Darstellung einer senkrechten
Linie auf einem EA DOG XL160.
Habe die Darstellung damit aufgerufen:
1
LCD_Plot_Vline(35,15,1);
2
LCD_Plot_Vline(35,16,1);
Die Ausführung erfolgt durch
1
voidLCD_Plot_Vline(uint8_tx,uint8_ty,uint8_th)// x Start w, y start s, h Länge ori
2
{
3
uint8_typ;
4
for(yp=y;yp<=y+h-1;yp++)
5
{
6
LCD_Plot_Point(x,yp,1);
7
}
8
}
Funktion:
Der Startpunkt wird duch x und y festgelegt, h gibt die Länge des
Striches an. Die for Schleife wird so oft durchlaufen wie von h
angegeben. Dadurcj wird yp hochgezählt.
Beim XL160 erfolgt die Darstellung aber nich Pixel für Pixel sonder
immer 4 Bit weise (wenn ich es richtig verstanden habe).
Wie kann ich das richtig darstellen so das sich Linie bildet?
LG Heinz
GLCD_pixel(x,y,status);
Musst du ersetzen mit deiner eigenen Routine, da ich es bei mir im RAM
setzte und danach den inhalt des RAM's auf dem Display ausgebe.
Heinz schrieb:> Beim XL160 erfolgt die Darstellung aber nich Pixel für Pixel sonder> immer 4 Bit weise (wenn ich es richtig verstanden habe).> Wie kann ich das richtig darstellen so das sich Linie bildet?
die Speicherorganisation ist vollkommen egal da du Plot_Point aufrufst,
der genau einen Punkt setzt. Voraussetzung Plot_Point macht was es soll.
Das man das Zeichen von Linien u.U. optimieren kann wenn man die
Organisation des Displays berücksichtigt ist noch was anderes.
Wenn du wie oben mit ...,1) aufrufst, dann entsteht natürlich keine
Linie.
Sascha
Sascha W. schrieb:> Wenn du wie oben mit ...,1) aufrufst, dann entsteht natürlich keine> Linie.
Bist du dabei sicher? Bei Plot_point ist y_dot Eingabe erforderlich.
Dabei ist einfach x,y,0 eine unsichtbare Linie. Ob ich dort 1 oder 4
schreibe ist egal.
Heinz schrieb:> Sascha W. schrieb:>> Wenn du wie oben mit ...,1) aufrufst, dann entsteht natürlich keine>> Linie.>> Bist du dabei sicher?
na es wird halt 1 Pixel gezeichnet, das ist noch keine Linie
> Bei Plot_point ist y_dot Eingabe erforderlich.
ist das der 3. Parameter von Plot_Point? Ist mit vorhin gar nicht
aufgefallen das da 3 Werte sind. Ist das aus einer LIB? Dann sollte das
doch irgendwie beschrieben sein.
> Dabei ist einfach x,y,0 eine unsichtbare Linie.> Ob ich dort 1 oder 4 schreibe ist egal.
und was wird ausgegeben?
Sascha
Heinz schrieb:> Beim XL160 erfolgt die Darstellung aber nich Pixel für Pixel sonder> immer 4 Bit weise (wenn ich es richtig verstanden habe).> Wie kann ich das richtig darstellen so das sich Linie bildet?
Das wurde Dir schon mehrfach erklärt:
a. Du liest die entprechenden 4 Bit - veränderst diese nach Deinem
Wunsch - und schreibst sie zurück
b. Du legst ein Abbild des "Grafik-Speichers" ins RAM - setzt und löscht
dort Punkte - und schreibst dann jeweils den gesamten "Grafik-Speicher"
(oder auch nur geänderte Teile) auf den Speicher des Displays
c. Du arbeitest mit der ug8lib - die kann das
Hallo Johann
danke für den Tip. Habe jetzt die Sache in den Griff bekommen. Mit dem
Graphik Speicher klappt es sehr gut. Hat noch sehr schönen Nebeneffekt,
die Linien können sich überkreuzen und werden an den Schnittpunkten
nicht gelöscht.
Danke
Eine eigene Frage?
Dieser Thread ist über 7 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.