Setzen ist 'becomes set (one)' und Löschen ist 'writing a logical one"

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Setzen ist 'becomes set (one)' und Löschen ist 'writing a logical one"

      genau das ist gerade mein Problem,

      wurde auch hier schon mal diskutiert:
      PCINT Attiny Flankenerkennung

      wie ist das denn jetzt zu verstehen?
      Ist "one" etwas anderes als "logical one"

      Danke
      Gruß Hans

      stammt von hier:
      GIFR.JPG
      Gruß
      Hans

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Hans_L ()

    • Hans_L schrieb:

      Ist "one" etwas anderes als "logical one"
      Nein, 'Gifr =128' löscht das Flag falls es gesetzt war, wenn nicht ändert sich nichts.
      Etwas gewöhnungsbedürftig, zumal der Simulator das ganz anders sieht. :(
      Normalerweise wird es vom Avr gelöscht wenn die Int1 Routine ausgeführt wird. Es manuell zu löschen ist nur selten nötig z.B. wenn es keine Int Routine gibt, es innerhalb der Routine einen weiteren Int gegen kann oder die Routine abgeschaltet wurde (um zu verhindern dass sie beim Einschalten sofort ausgeführt wird).
      PS Gifr = 0 bewirkt nichts (außer ein(ige) Takt)
    • Das auf "1" setzen bewirkt ein löschen des Flags (falls es gesetzt ist) es wird dadurch "0". Der Sinn ist dass eine Isr nicht ununterbrochen aufgerufen wird, sondern nur dann wenn es wieder (durch das Interrupt Ereignis) gesetzt wird.
      z.B. bei einer Timeranwendung:

      Quellcode

      1. Do
      2. ....
      3. Loop Until Tifr.5 = 1 ' 14219
      4. Set Tifr.5
      5. Incr Z '125 ms
      6. If Z >=8 Then
      7. Z = 0
      8. Incr Rsec 'Unix
      Würde Zeile 4 fehlen rennt die Main ungehemmt durch und die Uhr würde 'Durchdrehen' a_217_27b18bee

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Pluto25 ()