Forum: Mikrocontroller und Digitale Elektronik [ATmega8] Flag im GIFR setzen unmöglich?


von Gast (Gast)


Lesenswert?

Hallo,

ist es unmöglich, ein Flag (z. B. INTF0) im GIFR zu setzen? Ich meine 
natürlich nicht etwa durch eine steigende Flanke am INT0-Pin, sondern 
per Software, also aus dem laufenden Programm heraus.

Löschen kann man diese Flags bekanntlich ja durch Einschreiben einer 1 
(nicht 0!). Nun möchte ich aber so ein Flag setzen, und habe dafür 
keinen Weg gefunden (mit 1 einschreiben gehts ja nicht - aber wie 
dann?). Diverse Tests mit dem AVRStudio4-Simulator schlugen alle fehl, 
und im Datenblatt steht nix dazu.

Jemand einen Tipp? Wäre klasse.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ich verstehe nicht, wofür du das überhaupt machen willst. Ich habe jetzt 
nicht nachgeprüft, ob es tatsächlich nicht geht. Aber wenn ich möchte, 
dass eine Interruptroutine auf Softwarekommando ausgeführt wird, setze 
ich nicht das Interruptflag, sondern springe einfach direkt die Routine 
an. Oder In C eben einfach die Interruptfunktion aufrufen.

Vielleicht löst das ja dein Problem.

Viele Grüße,

Peter

von mmerten (Gast)


Lesenswert?

Setzen von INT-Flags ist in der Tat von der Hardwareseite nicht 
vorgesehen, nur das Löschen durch zurückschreiben einer "1" auf dem 
betreffenden Bit.

von Gast (Gast)


Lesenswert?

@Peter: Ja, wenn man die ISR sofort ausführen will, kann man das 
natürlich durch simples Aufrufen derselben erreichen. Meine soll jedoch 
erst zu einem späteren Zeitpunkt ausgeführt werden, weil vorher 
unbedingt noch etwas geupdated werden muss. Deshalb wollte ich den 
Interrupt über sein Hardware-Flag (INTF0 im Register GIFR) vormerken. 
Wie ich mittlerweile gecheckt habe, kann ich das Gewünschte aber auch 
durch ein gewöhnliches Software-Flag erwirken.

@mmerten: OK, damit wäre meine Frage geklärt.

Danke euch beiden und ein schönes WE!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.