Registernamen AT32UC3A1512

OP #2272783
Lesenswert?

Hallo zusammen,

ich habe folgendes Board mit einem AT32UC3A1512 µC: 
http://www.alvidi.de/shop/product_info.php?info=p7_AVR32-Modul.html

Mein Anliegen ist es, wie im AVR-GCC-Tutorial aufgeführt, die IO-Pins 
über die Register DDRx, PINx, PORTx per Bitmanipulation zu steuern.

Ich benutze das Atmel AVR32 Studio, als "Target Device" ist der passende 
µC-Typ eingestellt. Es ist mir jedoch nicht gelungen die Bezeichnungen 
für die Register und Pins herauszufinden, weder aus den passenden 
include-dateien gpio.h noch aus dem Datenblatt, die im Tutorial 
aufgeführten funktionieren jedoch nicht. So müsste ich immer die 
GPIO-Funktionen ( gpio_set_gpio_pin, ... ) nutzen.

Wie kann ich nun die Registernamen herausfinden?

Gruß, Dominik
OP #2274042
Lesenswert?

Hier das Datenblatt: 
http://www.atmel.com/dyn/resources/prod_documents/doc32058.pdf

Ein Beispielprogramm (welches auch läuft) wäre folgendes:
1
#include "gpio.h" //driver of atmel include in AVR32 UC3A Framework C:\AT32UC3x-1.x.x\DRIVERS\GPIO
2
#include "compiler.h" //driver of atmel include in AVR32 UC3A Framework C:\AT32UC3x-1.x.x\UTILS
3
int main(void)
4
{
5
  U32 i; //you will find this definition of >U32< in driver "compiler.h"
6
  while(1)
7
  {
8
    gpio_set_gpio_pin(AVR32_PIN_PA03); //set the pin 3 on port A as high-output
9
    for(i=0; i<1000; i++); //wait loop
10
    gpio_clr_gpio_pin(AVR32_PIN_PA03); //set the pin 3 on port A as low-output
11
    for(i=0; i<1000; i++); //wait loop
12
  }
13
}

gpio.h bzw gpio.c habe ich angehängt. Dort ist folgende Definition zu 
finden:
1
void gpio_set_gpio_pin(uint32_t pin)
2
{
3
  volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
4
  gpio_port->ovrs  = 1 << (pin & 0x1F); // Value to be driven on the I/O line: 1.
5
  gpio_port->oders = 1 << (pin & 0x1F); // The GPIO output driver is enabled for that pin.
6
  gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
7
}

Ich schätze mit "Header für AVR32 UC3*" war die Datei uc3a1512.h 
gemeint.

Vielen Dank schon mal für die Hilfe.
Angehängte Dateien:
#2274292
Lesenswert?

Also die Register für die gpio lauten
AVR32_GPIO.port[0].gper für Enable.
AVR32_GPIO.port[0].oder für Output

AVR32_GPIO.port[0].ovr direkt auf das Port schreiben, und der Rest is 
aus dem Datenblatt zu entnehmen. Fas das noch nicht hilfreich war 
einfach fragen. Antwort gibt's dann aber vom pc aus denn das Telefon hat 
ne bescheuerte Tastatur.
Gast #2274308
Lesenswert?

Dominik B. schrieb:
> Ich schätze mit "Header für AVR32 UC3*" war die Datei uc3a1512.h
> gemeint.

Ja, da stehen alle registernamen usw. drin die du wohl haben wolltest, 
oder?


> Vielen Dank schon mal für die Hilfe.

Was genau war jetzt noch die verbleibende Frage? Du möchtest die AVR32 
Library nicht benutzen sondern alles von Hand machen? (wenn ja, warum?)

Die DDR*, PINx, usw. Namen aus dem AVR-Tutorial haben gar nichts mit dem 
AVR32 zu tun, das kannst du gleich wieder alles vergessen, falls du das 
meintest. AVR (8 Bit) Controller != AVR32 UC3* Controller.
OP #2274358
Lesenswert?

Stefan O. schrieb:
> Also die Register für die gpio lauten
> AVR32_GPIO.port[0].gper für Enable.
> AVR32_GPIO.port[0].oder für Output
>
> AVR32_GPIO.port[0].ovr direkt auf das Port schreiben, und der Rest is
> aus dem Datenblatt zu entnehmen. Fas das noch nicht hilfreich war
> einfach fragen. Antwort gibt's dann aber vom pc aus denn das Telefon hat
> ne bescheuerte Tastatur.

okay vielen Dank, das funktioniert so;)


Dummy schrieb:
> Was genau war jetzt noch die verbleibende Frage? Du möchtest die AVR32
> Library nicht benutzen sondern alles von Hand machen? (wenn ja, warum?)
>
> Die DDR*, PINx, usw. Namen aus dem AVR-Tutorial haben gar nichts mit dem
> AVR32 zu tun, das kannst du gleich wieder alles vergessen, falls du das
> meintest. AVR (8 Bit) Controller != AVR32 UC3* Controller.

na da fällt es mir doch wie Schuppen von den Augen ;) Ich werde also die 
Library benutzen und mich durch die Programmbeispiele von Atmel 
arbeiten. Ein AVR32 Wiki bzw Tutorials scheint es ja leider noch nicht 
zu geben.

Danke euch, sehr hilfreiches Forum hier :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren