Forum: Compiler & IDEs ATmega 32 - Fragen zum "Status Code"


von bierschinken (Gast)


Lesenswert?

Hallo ich habe zwei Fragen.

1.
Im Datenblatt des Atmega32 stehen auf Seite 184 sogenannte "Status 
Codes" des Register TWSR, z.B. "$08". So wie ich das verstehe soll dann 
als Reaktion auf ein bestimmtes Ereignis am TWI eben z.B. "$08" im 
Register TWSR stehen. Leider ist mir unklar wie einem Byte "$08" 
angezeigt werden soll.

2.
Auf seite 182 des ATmega32-Datenblatts sind Codebeispiele in C 
angegeben. Code vision akzeptiert dies jedoch nicht, da dort einzelne 
Bits angesprochen werden, z.B. "TWINT" was seinerseits wieder 
bestandteil des TWCR -Registers ist.
Liegt es am Compiler oder wie sind dies Beispiele zu verstehen?


Danke im Voraus

von Hc Z. (mizch)


Lesenswert?

bierschinken schrieb:
> Leider ist mir unklar wie einem Byte "$08"
> angezeigt werden soll.

$08 ist eine andere Schreibweise für das, was in C 0x08 wäre (hex).

> Auf seite 182 des ATmega32-Datenblatts sind Codebeispiele in C
> angegeben.  Code vision akzeptiert dies jedoch nicht, da dort einzelne
> Bits angesprochen werden, z.B. "TWINT" was seinerseits wieder
> bestandteil des TWCR -Registers ist.
> Liegt es am Compiler oder wie sind dies Beispiele zu verstehen?

Vermutlich hast Du nur nicht die nötigen Includes eingebunden.  Denn das 
dortige C sollte jeder C-Compiler verstehen.  Das ist nur absolut 
standardmäßige Bitarithemtik, auch die Teile mit TWINT und TWCR.

von Bierschinken (Gast)


Lesenswert?

Hc Zimmerer schrieb:

> Vermutlich hast Du nur nicht die nötigen Includes eingebunden.  Denn das
> dortige C sollte jeder C-Compiler verstehen.  Das ist nur absolut
> standardmäßige Bitarithemtik, auch die Teile mit TWINT und TWCR.

Ok Danke, welche Includes brauch ich da noch?

von Hc Z. (mizch)


Lesenswert?

Da musst Du in den Unterlagen Deines Compilers nachschauen, wo die 
Register des verwendeten µCs definiert werden.  Bei avr-gcc wäre es 
<avr/io.h>, aber das wird Dir wenig nützen.

von Bierschinken (Gast)


Lesenswert?

Danke für die Hilfe bis hierher;-)

Jetzt hab ich eine weitere Frage zu Thema Status Code:

Im ATmega32 datenblatt steht auf seite 194 der status-code "0xB0" und 
dabei steht: "Arbitration lost in SLA+R/W as master; own SLA+R has been 
received; ACK has been returned"

was bedeutet dieser Code im Fall des slave transmitter? und worin liegt 
der Unterschied 0xA8 (ebenfalls auf Seite 194 des Datenblatt 
beschrieben)

LInk zum datenblatt:
http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

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.