ASM-Frage

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

ASM-Frage

 · 
Posted: 09.09.2011 - 09:17  ·  #1
Hallo,

ich habe ein Display mit einem Pascal-Beispielcode bekommen (leider nicht AVRCo) und darin enthalten sind ein paar Zeilen Assembler. Da ich mich damit so gut wie nicht auskenne, meine Frage: kann mir vielleicht jemand sagen, für was das gut sein soll ?
Code
asm
ldi     ZL,1                   //hole Oszillator Calibrierung
clr     ZH                     //direktes Auslesen der Werkscalibrierung
ldi     r16,0b00100001
out     SPMCSR,16
lpm     r16,Z
sts     OSCCAL,r16
end;

gruss
Harry

[Edit]Wenn ich den ASM-Code compilieren will, bekomme ich einen "internal assembler error 2023" und die Zeile "ldi r16,0b00100001" wird angemeckert - auch wenn ich es in %00100001 ändere
[Edit, die 2.]mit ldi r16,33 geht es zu compilieren :-) - ich weiß aber leider immer noch nicht für was das gut sein soll und ob ich es überhaupt benötige :'(
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: ASM-Frage

 · 
Posted: 09.09.2011 - 13:59  ·  #2
Hallo Harry,

hier wird eine "Calibrierung" aus dem Flash? geladen. Evtl. handelt es sich auch nur um das OSC-CAL-Bytye eines AVRs.

rolf
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1408
Registered: 03 / 2005
Subject:

Re: ASM-Frage

 · 
Posted: 09.09.2011 - 15:08  ·  #3
I may be wrong, but don't you need an ENDASM statement?

In assembler the syntax for a hex number is, eg.

0B1Ah

If a binary number is allowed, would the equivalent syntax not be

010001b

?

At any event it cannot be 0b.... as that would be ambiguous with the start of a hex number...

Regards

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

Re: ASM-Frage

 · 
Posted: 12.09.2011 - 11:56  ·  #4
Hallo Rolf,

erstmal herzlichen Dank. Nach längerem Suchen habe ich den Ersteller des Codes ausfindig gemacht und ihn mal angemailt. Ich hoffe er kann es mir erklären.

Beim Studium des Manuals ist mir aber noch eine Frage gekommen. Beim Define eines GLCDs bin ich auf folgendes gestossen:
Code
LCDGraphic = 240, 128, 8; {x-pix, y-pix, accesswidth}

und die Beschreibung
Code
LCDgraphic bestimmt die Display-Grösse (x, y) und die Zugriffsbreite (normalerweise 8).

Wie ist das mit der Zugriffsbreite zu verstehen ? Kann ich hier z.B. ein Display das pro Pixel 1 Byte benötigt mit
Code
LCDGraphic = 240, 128, 1;

definieren ?

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

Re: ASM-Frage

 · 
Posted: 12.09.2011 - 14:57  ·  #5
Hallo Harry,

accesswidth/Zugriffsbreite bezeichnet den Speicherzugriff im Display, normalerweise 8bits = 1byte.
Das hat mit bits/pixel nichts zu tun. Unser Treiber unterstützt immer nur 1bit/pixel.

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

Re: ASM-Frage

 · 
Posted: 14.09.2011 - 08:05  ·  #6
Hallo Rolf,

sorry aber das versteh ich jetzt nicht so ganz. Wenn ich den Speicherzugriff im Display nun auf 1 Bit setze, was wird dann ans Display übertragen ? Nur 1 Bit = 1 Pixel ? Könnte ich das dann im UserDevice GraphIOS so "verbiegen", daß ein Byte daraus wird ? Wird der "Bildschirmspeicher" im AVR dann nicht zeilenweise (also nicht 8 zeilenweise = 1 Byte) ausgelesen und übertragen ?

gruss
Harry

PS:Danke für ihre Geduld
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: ASM-Frage

 · 
Posted: 14.09.2011 - 13:46  ·  #7
Hallo Harry,

nochmal, accesswidth hat mit Pixeln nichts zu tun. Das ist nur der Zugriff auf das Graphic Memory im Graphic Controller. Und der ist fast immer 8bits.
Vergessen Sie das einfach. Sie arbeiten mit Pixeln, linien und Charactern.

rolf
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: 15 · Cache Hits: 14   122   136 · Page-Gen-Time: 0.022124s · Memory Usage: 4 MB · GZIP: on · Viewport: SMXL-HiDPI