mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Freescale MC9S08 Stack Manipulation


Autor: Thomas A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich verwende einen MC9S08QE8 Controller von Freescale. Codewarrior 6.1.

Ich versuche den Stackpointer über ein Macro zu manipulieren, bzw. zu 
verschieben.

Mein Ansatz sieht folgendermaßen aus:

[pre]#define __SetSP( x ) __asm LDHX #x; __asm TXS;[pre]

Dummerweise funktioniert das nicht (error message (C18103: Factor 
exptected)). Das Problem ist vermutlich das # vor dem x.

Hat jemand eine Idee wie man das Macro korrekterweise definiert?

Danke vorab.

Thomas

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lieber Fragesteller  Thomas A.
wenn Du schon solche Fragen zu nicht-AVR und nicht-PIC uP hier 
einstellst (in dieses Anfängerforum), so solltest Du doch 
freundlicherweise auch bald darauf die Lösung oder zumindest einen 
Hinweistext "erledigt" einstellen, da Du Deine Frage ja inzwischen im 
Freescale Forum beantwortet bekommen hast.
Der Einfachheit halber kopiere heute ich die dortige Antwort nochmal 
hierher.
Derlei extrem spezielle Fragen sind in diesem Forum jedoch fehl am 
Platz, denke ich.



Hello,

The following seems to give the intended result.

#pragma NO_STRING_CONSTR
#define __SetSP( x ) __asm LDHX #x; __asm TXS

Without the pragma, the presence of the '#' character within the inline 
assembler instruction confuses the C preprocessor when it expands the 
macro.

Regards,
Mac

Message Edited by bigmac on 2008-05-28 02:54 AM

Autor: Christian Gärtner (christiang)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Klaus
1) WO steht hier geschrieben, dass diese Forum nur für AVR und PIC µCs 
ist?
2) Innerhalb von einem halben Tag reagieren (sehen, dass in dem anderen 
Forum die Frage beantwortet wurde und dann hier auch noch posten. Ein 
klein wenig zuviel verlangt. Vgl. Zeitangabe Freescale Forum mit der 
Zeit hier als du deine (doch etwas freche) Antwort geschrieben hast. Und 
bitte nicht die Zeitverschiebung der einzelnen User vergessen...

SCNR,
Christian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.