mikrocontroller.net

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


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.