ich möchte in einem Assemblerfile für avr-gcc zwei
Assembleranweisungen durch ein Makro ersetzen.
Ungefähr so:
#define waiLo(PORT,PIN,LAB)\
LAB: sbic PORT,PIN ; 2/3C loop until SCL is low\
rjmp LAB ; 2C
Jetzt macht der Präprozssor natürlich eine Zeile daraus,
es müssen für den Assembler aber 2 Zeilen sein,
wie mach ich das?
geht doch nicht, zwar keine Fehlermeldung, aber die zweite Zeile wird natürlich verschluckt (als Kommentar betrachtet)
Hallo Bernd, was spricht denn gegen
1 | .MAKRO waiLo() |
? (siehe http://www.mikrocontroller.net/articles/AVR_Assembler_Makros)
Den Kommentar darfst du da nicht reinschreiben, denn der Präprozessor macht ja aus backslash-newline eine lange Zeile draus. Den Zeilenwechsel (für die zweite Anweisung) kannst du im AVR-GNU-Assembler meines Wissens alternativ durch ein $ kennzeichnen.
1 | #define waiLo(PORT,PIN)\ |
2 | 99: sbic PORT,PIN$ \ |
3 | rjmp 99b |
Frank schrieb: > was spricht denn gegen.MAKRO waiLo() eigentlich nur die Tatsache dass ich aus der C-Ecke stamme Jörg Wunsch schrieb: > Den Zeilenwechsel (für die zweite Anweisung) kannst du im > AVR-GNU-Assembler meines Wissens alternativ durch ein $ > kennzeichnen. danke. so geht's
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.