Ich wollte gerade einem ATmega88 das Spechen über USART in SPI Mode beibringen. Also habe ich erstmal den Beispielcode aus dem Datenblatt kopiert [S.199] Allerdings kennt mein Programm (Atmel Studio 6.2.1562 SP2) das Bit "UCPHA0" im Register UCSR0C nicht [S.204]. Im normalen Modus ist dieses Bit als "UCSZ00" bezeichnet, welches das Programm auch kennt [S.193]. Ist es jetzt egal, ob ich dort eine "1" oder ein "UCSZ00" anstelle des "UCPHA0" eintrage? Datenblatt: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
Also bei mir ist es drin, allerdings in der iom88p.h bzw. iom88a.h und nicht in der iom88pa.h und iom88pb.h ist es nicht drin.
1 | #define UCSR0C _SFR_MEM8(0xC2)
|
2 | #define UCPOL0 0
|
3 | #define UCSZ00 1
|
4 | #define UCPHA0 1
|
5 | #define UCSZ01 2
|
6 | #define UDORD0 2
|
7 | #define USBS0 3
|
8 | #define UPM00 4
|
9 | #define UPM01 5
|
10 | #define UMSEL00 6
|
11 | #define UMSEL01 7
|
Welche genaue Bezeichnung hat dein Controller und welche hast du in Atmelstudio ausgewählt? Vermutlich wurden die alten Header von den alten Controllern einfach nicht weiter gepflegt
:
Bearbeitet durch User
In meinem m88def.inc steht: ; UCSR0C - USART Control and Status Register C .equ UCPOL0 = 0 ; Clock Polarity .equ UCSZ00 = 1 ; Character Size .equ UCPHA0 = UCSZ00 ; For compatibility .equ UCSZ01 = 2 ; Character Size .equ UDORD0 = UCSZ01 ; For compatibility .equ USBS0 = 3 ; Stop Bit Select . . .
Ja .. danke, ich habe den PA und dies auch ausgewählt. Mit einer "1" läuft das jetzt auch alles.
.. Ich dachte der ATmega88 wäre eher ein neuer um den ATmega8 zu verdrängen ..
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.