Forum: Mikrocontroller und Digitale Elektronik MSP430 - IAR Workbench : Error


von David H. (david_h979)


Lesenswert?

Hallo Leute,

hab ein Problem. Beim compilieren von folgenden Code gibts diesen Error:

error 431 accessing sfr using incorrect size

Code bei dem Fehler auftritt:

bis.w  #UCSWRST,&UCB0CTL1       ; Enable Software Reset
bis.w  #UCMST+UCMODE_3+UCSYNC,&UCB0CTL0 ; I2C Master, synchronous mode
bis.w  #UCSSEL_2+UCSWRST,&UCB0CTL1 ;  Use SMCLK, keep SW reset

Programmiersprache ist Assembler wie man eh sieht ;-)

Danke euch im voraus!

LG

von dummschwaetzer (Gast)


Lesenswert?

bis.b, bis.w geht nur bei geradzahligien Adressen

von Clemens L. (c_l)


Lesenswert?

Was ist an "incorrect size" so unverständlich?

UCB0CTL0 und UCB0CTL1 sind Byte-Register.
Beide zusammen als Word wäre UCB0CTLW0.

von David H. (david_h979)


Lesenswert?

Wie würdest du das dann schreiben? Danke!

von dummschwaetzer (Gast)


Lesenswert?

bis.b  #UCSWRST,&UCB0CTL1       ; Enable Software Reset
bis.b  #UCMST+UCMODE_3+UCSYNC,&UCB0CTL0 ; I2C Master, synchronous mode
bis.b  #UCSSEL_2+UCSWRST,&UCB0CTL1 ;  Use SMCLK, keep SW reset

oder

bis.w  #UCSWRST+den_ganzen_anderen_kram,&UCB0CTLW0
bei den_ganzen_anderen_kram must du aber einige 8Bit shiften

von David H. (david_h979)


Lesenswert?

Danke!
Hab einfach nicht den Unterschiede zwischen Word und Byte Register 
verstanden :D wieder etwas gelernt

von Treteimer (Gast)


Lesenswert?

Warum eigentlich ASM? Der MSP lässt sich mit IAR wunderbar in C 
programmieren. Und wer ASM so geil findet, kann sich das vom Compiler 
erzeugte Listing anschauen.

von David H. (david_h979)


Lesenswert?

Schulprojekt.. programmiere normalerweise nur mit C und hab jetzt aber 
als Aufgabenstellung eine I2C Übertragung in Assembler bekommen.

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.