UserDevice GraphIOS

  • 1
  • 2
  • 3
  • Page 2 of 3
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 21.09.2011 - 11:31  ·  #9
Hab grad mal über RS232 mitgelesen was da so an Daten übergeben werden ..... gDrawLine arbeitet nicht mit SetPixel. Anscheinend muß ich echt ReadByte/WriteByte implementieren. Genau das wollte ich vermeiden, da es sehr kompliziert wird.

gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 21.09.2011 - 12:12  ·  #10
War doch nicht so schwer :) Jetzt funktionieren auch die Zeichenoperationen - außer gDrawBitmap. Da fehlen noch teilweise Bildpunkte. Ich teste mal weiter und wenns fertig ist, lade ich den gesamten Code hoch. Vielleicht interessiert das noch andere und vielleicht kann das ja mal jemand mithilfe von div. Assembler-Routinen beschleunigen.

gruss
Harry

[EDIT]gDrawBitMap arbeitet wohl nur mit Xor-Pixel. Nur da hab ich jetzt ein Verständnisproblem. XOr heißt doch auslesen, invertieren des durch Mask bezeichneten Bits, ausgeben ???????
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 21.09.2011 - 20:57  ·  #11
Hallo Rolf,

ich muß mich leider nochmals an sie wenden, da ich das mit dem gDrawBitMap nicht verstehe. Ich habe ein BitMap wie im Bild zu sehen gezeichnet und unabhängig von meinem Display die Parameter aufgezeichnet, die an XOrPixel übergeben werden.
Das Bild hat 36 "aktive" Pixel, also müßte doch 36 mal XOrPixel aufgerufen werden ? Es sind jedoch nur 20 Aufrufe. Oder werden die oberen/unteren horizontalen 5 Pixel in einem Byte geschrieben ? Warum sehe ich diese dann nicht in "Mask" gesetzt ? "Pixel" bring (wie man unten sieht) auch nicht die richtigen Daten. Dann müßt "Mask" oder "Pixel" des ersten Datenblockes 11111000 sein.

Hier die Aufzeichnung der Übergabeparameter: Immer 5 Zeilen sind ein Aufruf: Adresse, Mask, Pixel und meine gelesenen Displaydaten und die modifizierten Displaydaten.
Code

 1024
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1026
00001000
00000011
00 00 00 00 
00 00 F0 00 
 1056
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1059
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1088
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1091
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1120
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1123
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1152
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1155
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1888
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1891
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1920
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1923
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1952
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1955
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1984
10000000
00000111
00 00 00 00 
F0 00 00 00 
 1987
10000000
00000111
00 00 00 00 
F0 00 00 00 
 2016
10000000
00000111
00 00 00 00 
F0 00 00 00 
 2018
00001000
00000011
00 00 00 00 
00 00 F0 00 


Meine Protokollierung hat ergeben, daß bei einem gDrawBitMap nur XorPixel aufgerufen wird.

gruss
Harry

PS: Ok das hab ich jetzt auch verstanden: "Pixel" ist die Nummer des gesetzen Bits in "Mask" 8-)
PS #2: Mir ist grad aufgefallen, daß das ausgegebene BitMap definitiv nicht 32x32 Pixel groß ist - seltsam :'( das sind nur geschätzte 20x32 Pixel.
Das BitMap wird mit: Testbmp : Array[1..(32*32 div 8 )+2] of Byte = 'Test.pbmp'; eingebunden.
PS #3: Ich habe gerade das Array "Testbmp" als Binärstring auf dem Display ausgegeben (die beiden ersten Bytes enthalten die Bitmapgröße) und das paßt.
Attachments
UserDevice GraphIOS
Filename: Test.png
Filesize: 2.17 KB
Title:
Download counter: 172
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 21.09.2011 - 22:17  ·  #12
Noch eine Info (bin dauernd am testen): Hab grad mal für das BitMap eine Ausgabe zu Fuss programmiert und die funktioniert. Allerdings ohne Angaben von Koordinaten und ohne berücksichtigung einer Hintergrundverknüpfung.
Code

Procedure chDrawBitMap;
  Var XD,YD:Word;
  Begin
    For YD:=0 to 31 do
      For XD:=0 to 3 do
        Set8Pixel(XD+(YD*32),Testbmp[xd+3+(YD*4)]);
        EndFor;
      EndFor;
  End chDrawBitMap;

Set8Pixel gibt 8 Pixel = 1 Byte an der Adresse des ersten Parameters aus. Das Display ist 256 Pixel = 32 Byte breit.

Irgendwas scheint mit gDrawBitMap nicht zu stimmen :'(

gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 21.09.2011 - 23:30  ·  #13
Hallo Harry,

für Bitmaps gibt es Beschränkungen der x und y Dimensionen.

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 22.09.2011 - 00:30  ·  #14
Hi Rolf,

es geht ja schon bei 32x32 Pixeln nicht ;) - das Display hat 256x64 Pixel.

Es geht außerdem alles außer der Bitmapdarstellung (siehe meine letzten 2 Posts auf der vorigen Seite).

guats Nächtle
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 22.09.2011 - 18:31  ·  #15
Hallo Harry,

bei 90% der AVRco Treiber bin ich selbst ganz normaler User. Ich muss Manuals wälzen und Demos durcharbeiten. Es sind teilweise ja schon Jahre her seit Erstellung der Treiber und der Demos.
Bei mir jedenfalls haben die LCD Graphic Programme immer getan. Sorry.

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: UserDevice GraphIOS

 · 
Posted: 23.09.2011 - 13:34  ·  #16
Hi Rolf,

ok danke. Meine letzte Rettung/Frage: ist es möglich den Quellcode von gDrawBitMap einzusehen ? Das ist glaub die einzige Möglichkeit drauf zu kommen, wieso es nicht geht. Wenn das allerdings in Assembler geschrieben wurde ist es für mich sinnlos :D

Ich habe gerade noch auf einem T6963-Display versucht die Daten vom GraphIOS/XorPixel mitzulesen (Adr, Mask und Pixel) und mußte dazu ein Delay einbauen. Das witzige dran war, sobald ein Delay im GraphIOS drin ist, funktioniert die BitMapausgabe auch nicht mehr (gleiche Ausgabefehler wie bei meinem OLED-Display). Daraufhin habe ich mein Prog nach Delays durchsucht und alle entfernt (es waren 3 SDelay drin) - geht aber trotzdem nicht.

Ich werde sie nicht weiter nerven - aber ich gebe auch nicht auf :bandit:

gruss
Harry
  • 1
  • 2
  • 3
  • Page 2 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 16 · Cache Hits: 15   136   151 · Page-Gen-Time: 0.033497s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI