Forum: Mikrocontroller und Digitale Elektronik AVR Controller Interrupts und USI


von Lars Lochmann (Gast)


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

von crazy horse (Gast)


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

von Lars Lochmann (Gast)


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.

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.