www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 UC3A: Software-Interrupt


Autor: LookingForAnswer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe ein problem bzgl. einem AT32UC3A0512 (Demoboard)
wie kann ich einen Software-Interrupt
initialisieren und starten ?

Ich bin momentan auf der Suche nach einem Register in dem man
einen Interrupt per Software aktivieren kann
z.b. den SSC-RXD Interrupt

initialisiert ist er meines erachtens schon - nur wie kann man ihn
ohne per Software aktivieren

viele Grüße

Autor: PapaNappa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe nicht ganz dein Problem.
Willst du manuell einen Interrupt auslösen? Wenn ja, dann macht das 
eigentlich keinen Sinn. Interrupts haben ja die Eigenschaft, dass sie 
automatisch ausgelöst werden. Das einzige was du machen kannst, ist die 
Routine des Interrupts direkt aufzurufen.

Oder willst du tatsächlich nur die Interrupts aktivieren?
Wenn ja, dann musst du 3 Sachen machen:

Im Interruptcontroller den Autovektor setzen (SSC ist Gruppe 13). Der 
Autovektor ist die Startadresse der Interupt Service Routine (ISR) 
relativ zum Register EVBA.

Dann musst du direkt im SSC im Interrupt Enable Register das 
entsprechene Bit setzen.

Zum Schluss muss du, falls noch nicht geschehen, dass Global Mask-Flag 
im Statusregister löschen, um Interrupts allgemein zuzulassen.

Wie das herausfinden des Autovektos und das setzen des Sprungbefehls an 
der richtigen Stelle in C geht, kann ich dir nicht sagen.

Autor: LookingForAnswer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interrupts habe ich schon aktiviert -
ich möchte tatsächlich einen Interrupt manuell auslösen

Folgende Problemstellung:

UART-Interrupt - höchste Prio (INT3)
Verarbeitung  - mittlere Prio (Software-Interrupt INT2)
USB-Interrupt - niedrigste Prio (INT1)

jetzt war die Frage wie man diese manuel auslösen kann

danke im vorraus

Autor: FoundAnswer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

braucht sich niemand mehr den kopf darüber zu zerbrechen -
habs bereits selbst rausgefunden -

habe den ext_int0 interrupt aktiviert und
aktiviere den interrupt über eine selbsterzeugte flanke
an dem dazugehörigen pin

viele grüße

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.