Benötige Hilfe bei Inline Assembler

Gast #3113011
Lesenswert?
• ▲
▼
Zunächst mal die Info warum ich Inline Assembler nutzen will:

Ich will das mein Programm (GCC) am Anfang nachschaut ob es intern 
(8MHz) oder extern (16MHz) getaktet wird und je nach dem die Timer 
einstellt.

Daher ist es das Ziel dieses Code:
1
cli
2

3
  ldi ZH, 0    ; $0000=FLB / $0001=LB / $0002=FEB / $0003=FHB
4
  ldi ZL, 0              
5
  in wrH, SPMCSR
6
  ori wrH,(1<<BLBSET)|(1<<SPMEN);
7
  out SPMCSR, wrH
8
  nop
9
  nop
10
  nop
11
  nop
12
  nop
13
  lpm wrH,Z    ; Inhalt ist das abgefragte Byte
14

15
sei
Beitrag "Re: Fuses durch den AVR auslesen?"

In mein C-Programm zu bekommen.
Und die Ausgabe in C verarbeiten zu können.


Um klein an zu fangen versuche ich gerade die Variable
1
volatile uint8_t Fuses;
in einem kleinen Abschnitt hoch zu zählen, komme aber nicht wirklich 
weiter / blicke nicht wirklich durch das System durch.

Aktuell schaut mein Code so aus:
1
asm volatile (
2
"nop"  "\n\t"
3
"inc" : : "d" (Fuses)
4
);

Bekomme aber die Meldung "constant value required"
Wie schaffe ich es, das er die Variable nimmt?

Verwende aktuell die Infos von 
http://www.rn-wissen.de/index.php/Inline-Assembler_in_avr-gcc

Ggf. kann mir ja auch jemand bei dem finalen Code helfen (Oberster asm 
Code).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.