Ressourcen-Icon

Multitasking 5 2018-10-04

Zur ersten Variante:
Du verwendest Timer0 im CTC, das Output Compare Modul bestimmt die Frequenz indem es beim Match den Timer zurücksetzt. Im allgemeinen(!) erreicht der Timer 255=MAX nie, das TOV-Flag wird nicht gesetzt.
Folglich nutzt Du als Interrupt den des Output Compare Modules.
Was geschieht?
Einen Timertakt nach dem Match wird das "Timer/Counter0, Output Compare A Match Flag" gesetzt und der Timer selbst auf null. Da sowohl das "Timer/Counter0, Output Compare A Match Interrupt Enable"-Bit als auch das I in SREG gesetzt sind, wird nach Abarbeitung des laufenden Befehles der Program-Counter auf den Stack gepusht und 0x0020 in den ProgramCounter geladen. Bis hier vergehen mindestens vier Takte.
In Adresse 0x0020 steht ein absoluter Sprung zur COMP-A-ISR. Dieser kostet weitere drei Takte. Das Return am Ende der ISR stellt Stack und Program-Counter wieder her, und kostet nochmal vier Takte.
Also mindestens elf Takte zuzüglich zum Inhalt der ISR.

Bei Variante eins könntest Du auf den Interrupt verzichten, und statt Deines flag_1ms direkt das OCFA-Flag pollen. TIFR0 ist direct bit accessible, es wird also kein Rechenregister für den Zugriff benötigt SBIS/SBIC zum prüfen sowie SBI zum löschen des Flags greifen. Inwiefern Du das ganze bei Klammercodinesisch nutzen kannst, mußt Du wissen.
 
Danke für deine Zeilen. Werde es genau ansehen. Das berücksichtigen der Takte habe ich nicht durchgeführt. Der Grund stammt von Falk Br. von einer anderen Seite. Die Klammern werden vorrangig verwendet um Taster zu lesen. Dadurch ist ein mehrfach Nutzung der Taster möglich, z.B. kurz - Taster ein, lang - Taster aus. Das stammt von Peter Dannergerrer. Verwende es in verschiedenen Programmen und auch beim Auslesen von Drehgebern mit Taster. Innerhalb eines Menue Programmes kann dadurch die Steuerung auf dem Display (hoch-runter) durch drehen erfolgen, Auswahl durch kurzes drücken und Reset durch langes drücken. Sicher ist im Programm einiges zu verbessern. Wahr eigentlich froh das es soweit funktioniert. Ist auch die Vorstufe zur Statemaschine. Das ist aber wieder ein ganz anderes Thema.
achim
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)