Forum: Mikrocontroller und Digitale Elektronik AtXmega Timer Compare


von Stefan F. (stefan1987)


Angehängte Dateien:

Lesenswert?

Hi,

hab wieder einmal eine Frage zum Xmega.
Nutze den 256A3 @ 32 Mhz mit Atmel Studio 6.

Jetzt habe ich von den Examples (also ASF) das Timer Example 1 genommen, 
da es im Prinzip das macht was ich eigentlich brauche. Also die Compare 
Outputs zum Auslösen eines Interrupts.
Ich habe den Source abgeändert so dass ich nicht mehr auf die ganzen 
anderen Atmel ASF Files angewiesen bin wie zb TC.c usw. Also im Prinzip 
nur Defines in konkrete Werte geändert.
Das ganze funktioniert dann auch bestens wenn ich das Projekt kompiliere 
und auf den Xmega spiele.

Wenn ich jetzt aber den Source 1:1 in ein neues Projekt kompiere, 
kompiliere und auf den µC übertrage geht es nicht mehr.

Was mir aufgefallen ist, ist das unter den Projekt einstellungen bei 
Compiler>Directories ein haufen Source Files drin stehen. Da ich aber in 
dem neuem Source keine dieser Funktionen mehr benutze sollte das doch 
keinen Unterschied machen oder? Die Disassemblys sind auch 
unterschiedlich und die builds unterschiedlich groß.
Beim Debuggen werden aber beide Timer identisch initialisiert.

TC_EXAMPLE12.rar ist die Version die funktioniert und Xmega_test_9... 
die Version die nicht funktioniert.

Hat jemand eine Idee was das Problem ist? Bzw wie ich den Timer so 
nutzen kann ohne den ganzen Kram aus dem ASF mitzuschleppen ?

Vielen Dank schonmal.

Grüße Stefan

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du bekommst vermutlich deswegen so wenige Antworten, weil wir keine Lust 
haben, die RARs zu entpacken (sag das mal einem Mac User), und die ganze 
Struktur zu durchforsten. Am besten extrahierst du mal die 
entscheidenden Routinen und machst ein kleines Programm, die nur die 
Funktionalität enthält, die du anfragst.
Zeig uns die Initialisierung, die ISR und meinetwegen die Hauptschleife, 
obwohl die vermutlich nicht unbedingt nötig wäre.

von Stefan F. (stefan1987)


Angehängte Dateien:

Lesenswert?

Ok danke für den Hinweis.
Im Anhang habe ich nun die Initialisierung die ISR und die main loop.

Dieser Source in TC_EXAMPLE12 funktioniert. Im neuen Projekt 
Xmega_test_9_outputcompare nicht mehr.
Mein Verdacht sind die Einträge bei Compiler->Directories.

Aber es sollte doch auch ohne diese ganzen Files möglich sein den Timer 
im Compare Mode zu betreiben ?

Grüße

von Thomas F. (tomasf)


Lesenswert?

Du schaltest alle 4 CC-Interrupts ein (INTCTRLA), hast aber nur ISRs für 
Channel A und B, Dein Programm stürzt einfach ab.

Schalte nur die Interrupts für A und B ein.

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.