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
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 ...
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)
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.