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
Gast
#4124718
bis.b, bis.w geht nur bei geradzahligien Adressen
Was ist an "incorrect size" so unverständlich? UCB0CTL0 und UCB0CTL1 sind Byte-Register. Beide zusammen als Word wäre UCB0CTLW0.
Wie würdest du das dann schreiben? Danke!
Gast
#4124742
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
Danke! Hab einfach nicht den Unterschiede zwischen Word und Byte Register verstanden :D wieder etwas gelernt
Gast
#4124847
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.
Schulprojekt.. programmiere normalerweise nur mit C und hab jetzt aber als Aufgabenstellung eine I2C Übertragung in Assembler bekommen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.