Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » INT » Themenansicht

Autor Thread - Seiten: -1-
000
27.09.2017, 15:08 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo

ich muß in einer Routine die Interuptfreigabe (FF0/FF1) der CPU entziehen.

aber am Ende muß ich den Alten zustand wieder herstellen.
Also nur freigeben wenn vorher auch frei war.

? PUSH AF / ... / POP AF ? glaub ich das geht nicht so.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
27.09.2017, 16:32 Uhr
thrh



Hallo,

ld a,i dann enthält P/V iff2. Das kann dann ausgewertet und mit ei oder di wieder entsprechend gesetzt werden.

Thomas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
27.09.2017, 17:31 Uhr
PIC18F2550

Avatar von PIC18F2550

Sollte das so aussehen?


Quellcode:


     ...

     ld    a,i
     push    af

     ...

     pop    af
     ld    i,a

     ...



--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
27.09.2017, 19:25 Uhr
thrh



Nein, eher so


push af af retten
ld a,i iff2 nach p/v
di interrupt verhindern
push af iff2 retten

...

pop af iff2 zurueck
di
jp po,xx war di
ei
xx: pop af af zurueck


Bemerkung: 1. nmi kann nicht verhindert werden und iff2 beeinflussen
2. nach ld a,i kann noch eine isr kommen, die iff2 aendert

Gruß Thomas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek