Bitfolge mit bestimmter Frequenz ausgeben

Gast #1619638
Hallo,

ich möchte auf dem AT91SAM7S256-EK eine beliebige Bitfolge ausgeben; 
eine LED soll die Bits anzeigen (1 -> LED ein, 0 -> LED aus). Den Takt 
(z.B. 1Hz) erzeuge ich über einen Timer.

Wie könnte eine Funktion aussehen, die mir (mit dem vom Timer erzeugten 
Takt) die Bits ausgibt?

Danke und Gruß Axel
Das kann doch ganz einfach sein; du definierst eine Tabelle mit Bytes, 
in denen in jedem Byte 8 deiner auszugebenden Bits verpackt sind. Dazu 
führst du einen Zeiger für die Bits im gerade aktiven Byte, einen 
weiteren Zeiger auf die Bytes der Tabelle (globale Variablen!); bei 
jedem Timerinterrupt liest du dann das Bit aus dem jeweils aktiven Byte 
aus und gibt es auf den Ausgabepin, dann stellst du den Bit-Pointer 
weiter und ggf. - bei Überlauf über die "7" hinaus" - stellst du den 
Bitpointer auf null zurück und den Byte-Pointer weiter; dann fragst du 
ab, ob die Tabelle zuende bearbeitet ist und stoppst dann oder fängst 
von vorn an, wenns eine periodisch zu wiederholende Bitfolge sein soll.

Viel Erfolg.

Günter
Kaum. Nur der Timerinterrupt sichert dir, daß die Bits mit wenig Jitter 
periodisch erscheinen. Außerdem hat der Prozessor dann zwischendurch 
Zeit, anderes zu tun. Du darfst aber die Interrupts nicht für längere 
Zeit sperren, sonst gibt's u.U. erheblichen Jitter.

Willst du aber auf den Timer-Interrupt verzichten und hat der Prozessor 
sonst nichts zu tun, dann kannst du stattdessen eine Zählschleife 
etablieren und jeweils beim Ablauf des Zählers die oben genannte 
Prozedur ausführen; damit emulierst du quasi einen Interrupt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.