- 3D-Druck Einstieg und Tipps         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: Sprung aus ISR?

  1. #21
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Anzeige

    Powerstation Test
    Es sollte zumindest meistens gehen. Bei zugriffen auf 16 Bit register (Timer, AD) könnte man schon ein paar überraschungen kriegen, wenn man nicht überall darauf achtet diese extra zu schützen. Es sind aber schon noch einige extra Maßnahmen nötig um damit klar zu kommen, das da so eine Art Superinterrupt zwischenkommen kann der vieles Verändern kann.

    Es genügt nicht sich nur die Adresse zu merken um zurück in Hauptprogramm zu kommen, man braucht schon den ganzen Stackinhalt, incl. der geretteten Registerinhalte.

  2. #22
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Besserwessi
    man braucht schon den ganzen Stackinhalt, incl. der geretteten Registerinhalte.
    Guter Einwand, aber Ersteren komplett zu sichern ist nicht notwendig, denn dann müsste auch jede ISR den Stack komplett sichern, was nicht der Fall ist, Letzteres dagegen ist notwendig.

    Dabei gehe ich von einer Subroutine aus, die genau ein Label und ein Return besitzt.

  3. #23
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Man muß den Stackinhalt nicht extra Retten, man muß in nur einfach da lassen wo er ist. Das gleiche gilt auch die Rücksprungadresse. Damit hat man relativ viele Daten auf dem Stack und muß daher auch genügend Speicher dafür reservieren, das ist aber eine der leichteren Übungen.

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Besserwessi
    ...man muß in nur einfach da lassen wo er ist.
    So hab' ich das auch geschrieben.

  5. #25
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Robtec,

    ich habe mir nochmal dein erstes Posting durchgelesen. Was spricht eigentlich dagegen im Notausinterrupt nur ein Flag zu setzen, daß dann in der Hauptschleife abgearbeitet wird?
    Wie wärs mit einer Variable Status?
    Oder im Notausinterrupt erstmal alles abschalten und den Status setzen.
    Dann kann in der Hauptschleife nach ein paar Tests wieder alles nach und nach eingeschaltet werden.

    select case Status
    case Notaus
    'taster checken
    'wenn ok Status auf Boot setzen
    case Boot
    'Initdinge abarbeiten
    case Run

    undsoweiter

    Günter

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen