Forum: Mikrocontroller und Digitale Elektronik Atmel Studio zugriff auf Register


von Droid E. (eedroid)


Lesenswert?

Ich stelle gerade fest dass ich im Atmel Studio "anders" auf die Ports 
von einem ATtiny3216 zugreifen muss?

Anstatt "DDRB |= (1<<DDB0);" scheint jetzt nur folgendes zu 
funktionieren "PORTB.DIR = ..."

Kann man das irgendwo einstellen?

von Falk B. (falk)


Lesenswert?

Ee D. schrieb:
> Kann man das irgendwo einstellen?

Nö. Das eine sind die "alten" AVRs, das andere die neuen ATXmegas. Und 
auch die ganz neuen ATtiny basieren auf den ATXmegas. Siehe Datenblatt.

von Droid E. (eedroid)


Lesenswert?

Oh, dann also ab jetzt immer über "typedef struct PORT_struct" gehen? 
Gibt es hierzu eine Hilfe, wie z.B. 
https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_IO-Ports ?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Falk B. schrieb:
> die ganz neuen ATtiny basieren auf den ATXmegas

Ich frage mich schon länger, warum sie nicht Xtiny heissen? Das würde 
einige Verwirrung um die beiden ATtiny Familien vermeiden.

von Stefan F. (Gast)


Lesenswert?

Ee D. schrieb:
> Gibt es hierzu eine Hilfe, wie z.B.
> https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_IO-Ports ?

Alles was da steht gilt auch für die neuen Chips, nur dass du wie schon 
bemerkt PORTB.DIR anstatt DDRB schreiben musst. Alle Register folgen 
jetzt diesem Muster.

Der Vorteil ist, dass man jetzt PORTx einer Funktion als Parameter 
übergeben kann und diese damit Zugriff auf alle Register von PORTx hat. 
Voraussetzung dafür war, dass alle Ports die gleichen Register haben. 
Und das ist ja jetzt der Fall, ebenso bei vielen anderen I/O 
Schnittstellen (z.B. UART).

von Droid E. (eedroid)


Lesenswert?

Okay, vielen Dank euch beiden!

von eedroid (Gast)


Lesenswert?

Falk B. schrieb:
> Ee D. schrieb:
> Kann man das irgendwo einstellen?
>
> Nö. Das eine sind die "alten" AVRs, das andere die neuen ATXmegas. Und
> auch die ganz neuen ATtiny basieren auf den ATXmegas. Siehe Datenblatt.

Seit wann ist das denn so?

von Stefan F. (Gast)


Lesenswert?

eedroid schrieb:
> Seit wann ist das denn so?

Das kannst du selber anhand der Release-Notes in den Datenblättern 
herausfinden.

von Georg M. (g_m)


Lesenswert?


von eedroid (Gast)


Lesenswert?

Georg M. schrieb:
> eedroid schrieb:
> Seit wann ist das denn so?
>
> 2016

Ich lese dort, dass 2016 Atmel von Microshop aufgekauft würde, aber mehr 
sehe ich  dort nicht, sorry.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

eedroid schrieb:
> Ich lese dort, dass 2016 Atmel von Microshop aufgekauft würde, aber mehr
> sehe ich  dort nicht, sorry.

von c-hater (Gast)


Lesenswert?

eedroid schrieb:

> Seit wann ist das denn so?

Es läßt sich kein hartes "Umschaltdatum" angeben, weil es über sehr 
lange Zeit hinweg parallel Neuerscheinungen sowohl für die "klassische" 
AVR8-Architektur als auch für die XMega-Architektur gab und 
dementsprechend Controller mit beiden Namensschemas für die Register.

Die letzten Neuauflagen der Klassik-Tiny waren (glaube ich zumindest) 
die 441/841, wobei auch hier schon kleinere Teile der XMega-Technologie 
zum Einsatz kamen, aber die allermeisten Peripherie-Baugruppen waren 
noch "klassisch" und damit auch das Namensschema. Die Teile erschienen 
so 2013/2014.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Georg M. schrieb:
> eedroid schrieb:
>> Ich lese dort, dass 2016 Atmel von Microshop aufgekauft würde, aber mehr
>> sehe ich  dort nicht, sorry.

Daran erkennt man aber nicht, daß die neuen Tinys auf den ATXmegas 
basieren. Das ist Druidenwissen bzw. nur old school Datenblattlesern 
vorbehalten ;-)
Siehe Anhang. Wo steht da was von DDRx?

von Falk B. (falk)


Lesenswert?


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.