M16c, Test des I Bits

Gast #408051
Lesenswert?
• ▲
▼
Hallo,
ich suche nach einer Möglichkeit den Wert des I (Global Interrupt
enable) Bits meines M16c auszulesen. Verwende den Tasking M16c
Compiler, er bietet diese Fkt. nicht, hab jedenfalls nix gefunden.
Deshalb dachte ich an Inline Assembler, aber finde nun nicht den
passenden asm command...
"JCnd" bietet leider nicht die Möglichkeit nach dem Wert des I Bits
zu springen.
Gibt es wirklich keinen branch Befehl, der dies ermöglicht?


Grund ist, daß bei mir 2 Fkt, die jeweils keinen Interrupt erlauben
dürfen, sich gegenseitig aufrufen.Beide Fkt stoppen alle anderen
Interrupts und machen diese zum Schluß global wieder an.
Wenn nun die eine gekapselte Fkt am Ende I wieder anmacht ist dies auch
für den aufrufenden Interrupt gültig :(

Danke schonmal!
Gast #408052
Lesenswert?
• ▲
▼
Hallo, ja kenne ich nur zu gut, aber warum schreibst du kein weitere
Rahmensubprogramm wo dann halt die Funktion aufruft und vor und danach
das erledigt.
in Assembler dann halt speziell für das Controll-Register:

PUSH.W R0    ; Register immer retten (Compiler ?!?)
STC FLG,R0   ; lade Flag-Register in R0 (Store from Controlregister)
POP.W R0     ; viele Compiler nehmen R0 auch als Return Value somit
kannst du es in C verklauben
RTS


oder
PUSH.W R0
STC FLG,R0
BTST I,R0    ; I=7 test I also ab ins Carry oder negativ ins Zero
JC Ja_Interrupt
....
....
POP.W R0
RTS
Ich hoffe ich konnte dir helfen.

PS. der M16C bietet einen recht intresanten Befehlssatz mit einer sehr
starken Arithmetik.

Gruß Sascha

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.