Start mit Atmel ASF &instance

Gast #4207692
Lesenswert?
• ▲
▼
Hallo,

ich habe etwas Startschwierigkeiten mit dem ASF im AVR Studio. Bei der 
Konfiguration eines Moduls wird immer der pointer "&tc_instance" o.ä. 
verwendet. Dieser geht dann auf struct tc_module tc_instance;

Wie kann ich aber definieren, welches Modul gemeint ist? In diesem 
Beispiel, welcher der vielen Timer-Counter?

Konkret habe ich das Problem, dass ich nur einen der 3 Timer des SAMD21 
zum Laufen bekommen. Ich verstehe allerdings auch nicht, wie definiert 
wird, welche "instance" gerade angesprochen wird. Bei der 
tc_init(&tc_instance, TC6, &config_tc); ist es klar. Da steht ja direkt 
TC6 drin. Aber wie ist das Konstrukt mit der &tc_instance zu verstehen? 
z.B. bei tc_enable(&tc_instance);

Gruß,
Tobi
Gast #4207838
Lesenswert?
• ▲
▼
Ich kenn die ASF nur für XMega und wunder mich gerade das es hier solche 
Unterschiede gibt. Atmel wirbt ja damit das zwischen XMega und ARM dank 
ASF recht zügig gewechselt werden kann.
Hier meine Idee: In der Init wird die instance mit Werten befüllt und da 
steht unter anderem drin, welcher Timer es ist... Also brauchst du viele 
verschiede instance Ableger und darfst die nicht mit einem andere 
Initaufruf übrschreiben ...
#4208097
Lesenswert?
• ▲
▼
Tobi schrieb:
> z.B. bei tc_enable(&tc_instance);

Hallo,

Also das ASF hat bereits defines für deinen Controller angelegt. Dort 
stehen die Adressen der verschiedenen Module.

Wenn du mal ein einen Pin nimmst, bei mir sind die durchs ASF definiert 
als z.B. AVR32_PIN_PA07 in der Controller Headerdatei (uc3l064.h). 
(finden kannst du den Header wenn du ALT+G drückst wenn du einen Pin 
markiert hast und dann in die Headerdatei gehst)

Dort suchst du dann nach TC.

Das Konstrukt verlangt eine Adresse des Timers von dir um diesen zu 
enabeln.

Bsp:

in uc3l064.h

#define AVR32_TC0        (((volatileavr32_tc_t*)AVR32_TC0_ADDRESS))

Dein Funktionsaufruf würde dann lauten :

tc_enable(&AVR32_TC0)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.