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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.