Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

Zeile 1: Zeile 1:
 
{{Baustelle|SprinterSB}}
 
{{Baustelle|SprinterSB}}
 +
 +
<center>
 +
{| {{Blauetabelle}}
 +
|+ '''Tabelle: vordefinierte Bezeichner/Makros
 +
|- {{Hintergrund1}}
 +
! Bezeichner || Bedeutung
 +
|-
 +
|<tt>__SP_L__</tt> || unteres Byte des Stack-Pointers, für <tt>in</tt> bzw. <tt>out</tt>
 +
|-
 +
|<tt>__SP_H__</tt> || oberes Byte des Stack-Pointers, für <tt>in</tt> bzw. <tt>out</tt>
 +
|-
 +
|<tt>__SREG__</tt> || Status-Register, für <tt>in</tt> bzw. <tt>out</tt>
 +
|-
 +
|<tt>__tmp_reg__</tt> || ein Register zur temporären Verwendung (<tt>r0</tt>)
 +
|-
 +
|<tt>__zero_reg__</tt> || ein Register, das 0 enthält (<tt>r1</tt>)
 +
|-
 +
|<tt>lo8(''const'')</tt> || die unteren 8 Bit der Konstanten <tt>''const''</tt>
 +
|-
 +
|<tt>hi8(''const'')</tt> || Bits 8...15 der Konstanten <tt>''const''</tt>
 +
|-
 +
|<tt>hlo8(''const'')</tt> || Bits 16...23 der Konstanten <tt>''const''</tt>
 +
|-
 +
|<tt>hhi8(''const'')</tt> || Bits 24...31 der Konstanten <tt>''const''</tt>
 +
|}
 +
</center>
 +
<center>
 +
{| {{Blauetabelle}}
 +
|+ '''Tabelle: asm-Platzhalter und ihre Modifier, Sonderzeichen'''
 +
|- {{Hintergrund1}}
 +
! Platzhalter || wird ersetzt durch
 +
|-
 +
|<tt>%''n''</tt> || Wird ersezt durch Argument <tt>''n''</tt> mit <tt>''n''</tt> = 0...9
 +
|-
 +
|<tt>%A''n''</tt> || das erste (untere) Register des Arguments <tt>''n''</tt> (Bits 0...7)
 +
|-
 +
|<tt>%B''n''</tt> || das zweite Register des Arguments <tt>''n''</tt> (Bits 8...15)
 +
|-
 +
|<tt>%C''n''</tt> || das dritte Register des Arguments <tt>''n''</tt> (Bits 16...23)
 +
|-
 +
|<tt>%D''n''</tt> || das vierte Register des Arguments <tt>''n''</tt> (Bits 24...31)
 +
|-
 +
|<tt>%a''n''</tt> || Ausgabe des Arguments als Adress-Register,<br/>also als <tt>x</tt>, <tt>y</tt> bzw. <tt>z</tt>. Erlaubt zusammen mit Constraint <tt>b</tt>, <tt>e</tt>, <tt>x</tt>, <tt>y</tt>, <tt>z</tt>
 +
|-
 +
|<tt>%~</tt> || wird auf AVR mit Flash bis max. 8kByte durch ein <tt>r</tt> ersetzt, ansonsten bleibt es leer.<br/>Zum Aufbau von Sprungbefehlen, etwa "<tt>%~call foo</tt>"
 +
|-
 +
|<tt>%=</tt> || eine für dieses asm-Template und die Übersetzungseinheit eindeutige Zahl.<br/>Zum Aufbau  lokaler Sprungmarken.
 +
|- {{Hintergrund1}}
 +
! Sequenz || wird ersetzt durch Sonderzeichen
 +
|-
 +
|<tt>%%</tt> || das <tt>%</tt>-Zeichen selbst
 +
|-
 +
|<tt>\n</tt> || ein Zeilenumbruch<br/>zum Trennen mehrerer asm-Befehle/Zeilen
 +
|-
 +
|<tt>\t</tt> || ein TAB, zur Übersichtlichkeit im erzeugten asm
 +
|-
 +
|<tt>\"</tt> || ein <tt>"</tt> wird eingefügt
 +
|-
 +
|<tt>\\</tt> || das <tt>\</tt>-Zeichen selbst
 +
|- {{Hintergrund1}}
 +
! Kommentar || Beschreibung
 +
|-
 +
|<tt>; ''Text''</tt> || einzeiliger Kommentar bis zum Ende des Templates bzw. nächsten Zeilenumbruch
 +
|-
 +
|<tt>/* ''Text'' */</tt> || mehrzeiliger Kommentar wie in C
 +
|}
 +
</center>
  
 
<center>
 
<center>

Version vom 1. März 2006, 12:23 Uhr

Baustelle.gif An diesem Artikel arbeitet gerade Mitglied SprinterSB.

Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen.

Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor SprinterSB per PM / Mail oder Forum nachfragen ob er vergessen wurde.

Tabelle: vordefinierte Bezeichner/Makros
Bezeichner Bedeutung
__SP_L__ unteres Byte des Stack-Pointers, für in bzw. out
__SP_H__ oberes Byte des Stack-Pointers, für in bzw. out
__SREG__ Status-Register, für in bzw. out
__tmp_reg__ ein Register zur temporären Verwendung (r0)
__zero_reg__ ein Register, das 0 enthält (r1)
lo8(const) die unteren 8 Bit der Konstanten const
hi8(const) Bits 8...15 der Konstanten const
hlo8(const) Bits 16...23 der Konstanten const
hhi8(const) Bits 24...31 der Konstanten const
Tabelle: asm-Platzhalter und ihre Modifier, Sonderzeichen
Platzhalter wird ersetzt durch
%n Wird ersezt durch Argument n mit n = 0...9
%An das erste (untere) Register des Arguments n (Bits 0...7)
%Bn das zweite Register des Arguments n (Bits 8...15)
%Cn das dritte Register des Arguments n (Bits 16...23)
%Dn das vierte Register des Arguments n (Bits 24...31)
%an Ausgabe des Arguments als Adress-Register,
also als x, y bzw. z. Erlaubt zusammen mit Constraint b, e, x, y, z
%~ wird auf AVR mit Flash bis max. 8kByte durch ein r ersetzt, ansonsten bleibt es leer.
Zum Aufbau von Sprungbefehlen, etwa "%~call foo"
%= eine für dieses asm-Template und die Übersetzungseinheit eindeutige Zahl.
Zum Aufbau lokaler Sprungmarken.
Sequenz wird ersetzt durch Sonderzeichen
%% das %-Zeichen selbst
\n ein Zeilenumbruch
zum Trennen mehrerer asm-Befehle/Zeilen
\t ein TAB, zur Übersichtlichkeit im erzeugten asm
\" ein " wird eingefügt
\\ das \-Zeichen selbst
Kommentar Beschreibung
; Text einzeiliger Kommentar bis zum Ende des Templates bzw. nächsten Zeilenumbruch
/* Text */ mehrzeiliger Kommentar wie in C
Tabelle: Constraints und ihre Bedeutung
Contraint Erklärung Wertebereich
a einfache obere Register r16...r23
b Pointer-Register y, z
d obere Register r16...r31
e Pointer-Register x, y, z
G Floatingpoint-Konstante 0.0
i Konstante  
I positive 6-Bit-Konstante 0...63
J negative 6-Bit Konstante -63...0
K Konstante 2
L Konstante 0
l untere Register r0...r15
M 8-Bit Konstante 0...255
N Konstante -1
O Konstante 8, 16, 24
P Konstante 1
q Stack-Pointer SPH:SPL
r ein Register r0...r31
t Scratch-Register r0
w Obere Register-Paare r24, r26, r28, r30
x Pointer-Register X x (r27:r26)
y Pointer-Register Y y (r29:r28)
z Pointer-Register Z z (r31:r30)
Tabelle: Übersicht AVR-Instruktionen und passende Constraints
Mnemonic Constraint   Mnemonic Constraint   Mnemonic Constraint   Mnemonic Constraint  
adc r,r add r,r adiw w,I and r,r
andi d,M asr r bclr I bld r,I
brbc I,label brbs I,label bset I bst r,I
cbi I,I cbr d,I com r cp r,r
cpc r,r cpi d,M cpse r,r dec r
elpm t,z eor r,r in r,I inc r
ld r,e ldd r,b ldi d,M lds r,label
lpm t,z lsl r lsr r mov r,r
movw r,r mul r,r neg r or r,r
ori d,M out I,r pop r push r
rol r ror r sbc r,r sbci d,M
sbi I,I sbic I,I sbiw w,I sbr d,M
sbrc r,I sbrs r,I ser d st e,r
std b,r sts label,r sub r,r subi d,M
swap r  

LiFePO4 Speicher Test