8bit-µC mit NMI?

Gast #150072
Lesenswert?

Wozu ein NMI?

Nimm einfach einen Mikrocontroller Deiner Wahl, und schalte die
Interrupts eben nie ab; fertig ist der NMI.

Speicherschutz und Aufteilung in Super-Visor-Mode und Normal-Mode
gibt's sowieso nicht, daher gibt's natürlich auch kein NMI, da das
sinnfrei wäre.
Gast #150073
Lesenswert?

Naja, einen NMI hatten Prozessoren lange bevor es so Dinge wie den
Supervisormode oder irgendwelchen Speicherschutz gab. Das war bei den
alten 8-Bit-Prozessoren aus dem Protozoikum* recht normal.




*) Motorola 6800, 6502, Z80 und jeweilige Nachfolger
Gast #150074
Lesenswert?

Gegenfrage: wozu braucht man einen NMI ?


Wenn Du z.B. ein 8051-Derivat nimmst, weise einfach einem externen
Interrupt die Priorität 3 zu und allen anderen die Priorität 0..2 und
schon kann dieser Interrupt sämtliche anderen immer unterbrechen.

Natürlich darf dann im Hauptprogramm nirgends ein globales Disable
stehen.

Aber das ist auch kein Problem, nimm einfach einen unbenutzen Interrupt
und weise ihm die Priorität 2 zu.
Will nun das Main Sachen unter Interruptsperre ausführen (z.B. 1-wire)
setzt es einfach das Interruptflag dieses Interrupts und übergibt ihm
die unter Sperre auszuführende Routine.
Damit sind alle anderen Interrupts der Priorität 0..2 gesperrt, aber
der simulierte NMI (Priorität 3) weiterhin erlaubt.


Der AT89C51CC03 hat 64kB Flash und 37 IOs.
Der AT89C51RD2 hat 64kB Flash und 50 IOs.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren