Forum: Compiler & IDEs cbi PORTB,TXD geht nicht


von Walter (Gast)


Lesenswert?

ich habe in einem gcc C-Projekt eine Assemblerdatei,
dort möchte ich den folgenden Befehl verwenden

cbi  PORTB,TXD

oder

cbi  _SFR_IO8(PORTB),TXD

beides mag der Assembler aber nicht, da muss also eine Zahl hin wie z.B

cbi   0x18,TXD

Gibts da irgendwo ein define für oder muss ich dass selber definieren

von Simon K. (simon) Benutzerseite


Lesenswert?

Die defines stehen eigentlich alle in avr/io.h

sprich: "#include <avr/io.h>" sollte den "Fehler" beheben.

von Walter (Gast)


Lesenswert?

io.h habe ich included,
wie soll das entsprechende define z.B. für PORTB heißen?
(Wollgemerkt ich möchte es in einem Assemblerfile verwenden, nicht in 
C!)

von Rahul D. (rahul)


Lesenswert?

>cbi   0x18,TXD

Liegt vermutlich daran, dass der AVRgcc kein "cbi" kennt, und i.d.R. 
Bits in der Form "(1<<TXD)" angesprochen werden.

>(Wollgemerkt ich möchte es in einem Assemblerfile verwenden, nicht in
>C!)

Inline-Assembler oder externes ASM-File?

von Walter (Gast)


Lesenswert?

ein externer ASM-File,

das Bit ansprechen mit TXD (was ich vorher definiert habe) geht ja,
was ich suche ist ein define für das Ausgangsregister.
Ich könnte natürlich selber definieren z.B.
#define AUSGANG 0x18
und dann
cbi AUSGANG,TXD

das halte ich aber nicht für besonders elegant

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

http://www.nongnu.org/avr-libc/user-manual/assembler.html

Du warst schon nahe dran:

cbi  _SFR_IO_ADDR(PORTB),TXD

von Walter (Gast)


Lesenswert?

Besten Dank

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
Noch kein Account? Hier anmelden.