www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR - Interrupt-Prioritäten


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich suche im Datenblatt (ATmega16) verzweifelt nach dem Register, mit
dem man die Interrupt-Prioritäten einstellen kann, aber ich find es
nicht. Ich komme aus der 8052er-Ecke. Wer kann helfen?

Stefan

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner - die gibts beim AVR nicht.

Autor: ttt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint nicht zu gehen. Seite 11 ganz unten:

"... on page 43. The list also determines the priority levels of the
different interrupts. The lower the address, the higher is the priority
level. RESET has the highest priority, and next is INT0 - the External
Interrupt Request 0."

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, ich geb auch mal was dazu ab. Da produziert Atmel wirklich einen
Haufen 8052-Derivate, dann bringen die eine eigene Architektur auf den
Markt, die zwar schön auf C optimiert ist, aber ansonsten meiner
Meinung nach gelinde ausgedrückt nicht das Gelbe vom Ei ist.
Okay, ich weiss, das Gelbe vom Ei gibt es auf dem Gebiet eh nicht, aber
solche Krücken zu produzieren... SFR-Handling ist schon Murks... Gibts
bei den Popel-Dingern nicht irgendeine Register-Adresse, bei dem das
MSB bestimmt, mit welchem physikalischen Register gearbeitet wird? So
ein Murks, und blos weil keiner daran dachte, genug SFR-Platz zu
lassen.
Wenn ich sowas schon sehe.
Es gibt 8052er, bei denen ging der Platz für die SFRs auch aus, weil
die Teile so viel onboard haben. Aber dort hat man das viel sauberer
gelöst (meine Meinung). Dort gibt es ein einziges Register, welches
bestimmt, auf welcher SFR-Page man gerade arbeitet.
Und wenn die AVR-Dinger nicht mal IPs haben... Naja, jeder so, wie er
es mag...
Hoffe, es fühlt sich jetzt niemand gekränkt, oder beleidigt...

Ralf

Autor: Suzanna (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Verlaub gesagt, ging den AVR der SFR-Bereich ja aus dem selben Grund
aus, wie den 51'ern. Mit einem speziellen Register zum Umschalten hast
du aber mehr Aufwand, als mit dem MSB, schliesslich musst du zwei
zusätzliche Zugriffe machen. Ob jetzt eine Lösung "sauberer" ist mag
jeder selbst entscheiden. Die einen schalten auch lieber Registerbänke
um, die anderen haben gleich so mehrere. Mancher geht für jede
Operation über ACC und zieht 500 Euro ein, die anderen haben mehr
Multifunktionsregister. Die Interruptpriorisierung ist bestimmt
"kaufmännischen" Argumenten zum Opfer gefallen...
Die fehlen unter Umständen wirklich, die anderen Punkte die du
bemängelst sind rein subjektiv.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns nur darum geht, einen Interrupt zu priorisieren, dann kann man
in den anderen Interrupts per SEI den Interrupt wieder freigeben.
Mehrere Interrupts priorisieren ist sehr kompliziert. Habs auch noch
nie gebraucht.
@Ralf: Dieses eine Register wird so selten genutzt - da kommts dann
echt nicht mehr drauf an. Ist alles Geschmackssache, ich komme mit den
Atmels bestens zurecht. Für manche Projekte (z.B. Code aus dem RAM
ausführen) ist eben ein MCS-51 besser - dann nehme ich einen solchen.
Wo ist das Problem?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Suzanna:

Es stimmt was du sagst, klar wäre ich beim 51er froh, wenn ich nicht
jeden Furz mit dem Accu machen müsste, sondern wenn es mit jedem
Register ginge...
Bezüglich der Umschaltung der SFR-Pages muss ich fairerweise sagen,
dass der von mir angesprochene 51er so viele onboard-Funktionen hat,
dass die Umschaltung der Page wieder einfacher ist.

@thkais:

Es gibt kein Problem, nur Meinungen ;-)

Ralf

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Dort gibt es ein einziges Register, welches
bestimmt, auf welcher SFR-Page man gerade arbeitet."

Brauchbare Lösung für Assembler-Programmierung.

Compiler jedoch haben dazu ihre ganz eigene Ansicht: jede Art von
Bank-Switching ist ihnen zuwider, egal ob ROM, RAM oder IO.

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja Atmel ist Zusammenschluß mehrerer Firmen.

Die AVR-, ARM- und 8051-Leute sitzen jeder für sich im stillen
Kämmerlein und gucken nicht über den eigenen Tellerrand hinaus.

Und dadurch kommt es eben, daß jeder ein paar gute Ideen hat, aber die
nicht in einem Brainstorming mit den anderen ausgetauscht werden.

Es fehlt sozusagen das Familiendenken.

Schade.


Wenigstens 2, besser 4 Interruptlevel würden dem AVR ganz schön auf die
Sprünge helfen und das Programmieren enorm erleichtern (langsame
Interrupts muß man dann nicht mühsam optimieren).


Und daß die neuen AVRs, zusätzlich IOs im SRAM-Bereich ablegen, ist ja
auch kein Fehler. Unverständlich ist bloß, warum dann im ehemaligen
IO-Bereich soviel frei bleiben muß (z.B. ATMega168: 25 IO-Register
komplett ungenutzt).


Peter

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Naja Atmel ist Zusammenschluß mehrerer Firmen.

Echt? Hab ich gar nicht gewusst!!! Wieder was dazugelernt...

> Und dadurch kommt es eben, daß jeder ein paar gute Ideen hat, aber
die
> nicht in einem Brainstorming mit den anderen ausgetauscht werden.

Und genau deswegen hat es noch keiner geschafft, einen Controller
rauszubringen, der von allen das Beste vereint...

Naja, ich glaub, man könnte ewig über sowas diskutieren, und würde zu
keinem fertigen Ergebnis kommen...

Ralf

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.