www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Controller Interrupts und USI


Autor: Lars Lochmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich hab zwei kleinere Fragen:
1) Gibt es bei den AVR Controllern eine Möglichkeit, wie bei den C51ern, 
die Interuptpriorität festzulegen? Was passiert wenn zwei Interrupts 
gleichzeitig auftreten, bzw. einer in Bearbeitung ist und ein zweiter 
auftritt. Wird dann der niederwertige Interruptvektor ausgeführt? also 
dessen Speicheradresse im ROM geringer ist?

2)Ich würde gerne mal die USI etwas austesten. Im Datenblatt habe ich 
zwar schon einiges gefunden, aber so direkte Beispielalgorithmen und 
Programme waren da nicht dabei. Ich schreibe in AVR Assembler. Mir ist 
noch etwas unklar wie das mit dem Takt läuft. Hat jemand zufällig ne 
Routine als I2C Master, das würde erstmal verständnishalber reichen.

ciao
Lars

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1: nein
Bei gleichzeitigem Auftreten wird der mit der niedrigeren Int-Adresse 
zuerst ausgeführt. Läuft erstmal ein Int, kann kein anderer 
dazwischenfunken, bzw nur, wenn dies ausdrücklich von dir so sein soll:
-es müssten alle Interrupts, die diese ISR nicht unterbrechen sollen 
gesperrt werden, der unterbrechen darf, bleibt enabled.
-in der ISR wird das wird das I-flag per Software gesetzt
Man muss aber ziemlich aufpassen mit dem SREG und dem Stack, ohne 
wirklich zwingenden Grund würde ich es lassen

Autor: Lars Lochmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt mal etwas herum probiert. Wenn ein Interrupt aufgerufen 
wird, wird das Bit I des SREGs automatisch gelöscht und erst wieder 
gesetzt wenn der Interrupt mit RETI verlassen wurde. Man muss also das 
I-Flag von Hand im Interrupt setzen um im Interrupt einen erneuten 
Interrupt zuzulassen. Ich denke das wolltest du mir sagen. jetzt hab 
ichs begriffen. ;-)

Ok jetzt wäre noch das I2C Problem, hat jemand einen kleine 
Beispielroutine da für Assembeler? Oder nen schönen Link zu nem 
Algorithmus.

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.