Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: wie kann ich Interrupte unterbinden? Kategorie: Programmierung (von André H. - 12.06.2004 18:26)
Als Antwort auf Re: wie kann ich Interrupte unterbinden? von Holger - 9.05.2004 18:37
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Holger,

> >....
> > > Mit dem Auschalten der Interrupts über das PSW-Register werden auch wirkliche
> > alle Interrupts unterbunden.
>
> kannst du das näher beschreiben, was da in welches Register per ASM reingeschrieben
> werden muÃ? zum Sperren und Freigeben ?

Die Interrupts werden global durch das Bit 11 des PSW-Registers aktiviert bzw. deaktiviert (IEN).
(siehe Manual zum C164)
Allerdings sollte man beachten, daÃ? beim deaktivieren der Interrupts u.a. die RTC und der 1ms-Timer
in dieser Zeit stehen.
Deshalb sollte die Interrupts nur so lang wie wirklich nötig deaktiviert werden.

> Das würde mich interessieren, da ich in ASM über Schleifen kurze Zeiten zwischen Impulsen
> überbrücken mu� und ich ich glaube, dass mir die Interrupts immer mal dazwischen hauen.

Du solltest dann die Interrupts erst deaktivieren, unmittelbar nachdem der erste Impuls erfasst wurde.
Um sicherzustellen, daÃ? ab dem erkennen, bis zum deaktivieren der Interrupts kein Interrupts
die Routine unterbricht, kannst Du bis zu 4 Intruktionen als ATOMIC definieren.
(siehe Manual C164 Kap. System-Programming»Unseparable Instruction Sequences)

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: