mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 UC3B164 Counter/Interrupt


Autor: funksoulbrother (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: funksoulbrother (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.