Forum: Mikrocontroller und Digitale Elektronik AVR32 UC3B164 Counter/Interrupt


von funksoulbrother (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich bin momentan dabei mich in den UC3B164 von Atmel einzuarbeiten. 
Bekanntlich ein 32Bit uC aus dem Hause Atmel. Mein Problem ist die 
verwendung eines Counters, der bei Überschreitung eines bestimmten 
Wertes einen Interrupt auslöst in dem dann ein GPIO-Pin getoggled wird. 
Im Framework gibt es auch gleich drei Beispiele zu Countern, wobei im 
tc_example3.c auch ein Interrupt ausgelöst wird, der dann auch eben 
einen GPIO Pin toglled. Das Problem ist, dass das Beispiel für einen 
UC3B0XX geschrieben ist, also für die 64 Pin version. Ich verwende aber 
einen UC3B164 welcher nur 48 Pins hat, weswegen ich die Beispiele immer 
auf meine Anforderungen verändern muss. Das hat bis jetzt auch bei den 
meisten Beispielen geklappt. Aber bei diesem hier komme ich einfach 
nicht weiter. Ich habe auch mal die ganzen usart Sachen auskommentiert, 
da ich keinen USART auf meiner Platine habe, bzw. keine Serielle 
Schnittstelle. Ausserdem habe ich die .acpc und .acpa so verändert, dass 
entsprechend Hi bzw. LO Signale an AVR32_TC_A0_0_1_PIN (PA26) bei 
Überschreitung von R_c bzw. R_a anliegen. Damit habe ich überprüft, ob 
der Timer überhaupt läuft.
Das Problem ist aber, dass der Interrupt nie auftritt, oder aber auch, 
der Interrupt gar nicht richtig aktiviert wird.
Aus diesem Grund bitte ich um Hilfe. Kann mir jemand ganz genau die 
Funktionen tc_configure_interrupts, INTC_register_interrupt und 
INTC_init_interrupts erklären? Außerdem weiß ich nicht, was 
AVR32_TC_IRQ0 in der Funktione INTC_register_interrupt bedeutet. Im 
Header File für meinen uC steht für diesen ein Wert von 448. Genau wie 
im Header File für den UC3B0256. Daran muss ich doch dann nichts 
verändern, oder? Vielleicht kann mir auch jemand erklären, was ich genau 
tun muss, damit einfach nur beim Überlauf von Zähler 0 der Interrupt 
aktiviert wird und ich in der Ausführung der Interrupt Funktion mein 
Toggle am gewünschten Pin einstellen kann?

Wäre für jede Hilfe dankbar

P.S.: Ich habe mal meinen veränderten Code von tc_example3.c angehängt
P.P.S.: Die Anweisungen in der while(1)-Schleife kann man einfach 
ignorieren. Sie sind nur aus Debugzwecken drin.

von funksoulbrother (Gast)


Lesenswert?

Hat sich erledigt.
Das Problem lag im Großen und Ganzen darin, dass AVR32 Studio keine .S 
Dateien verarbeiten kann. Nach einer Umbenennung der .S Datei zu einer 
.x Datei hat es funktioniert

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.