Kleines mega8 Programm auf tiny13 - Frage zu Timern

Gast #1117603
Hallo Gemeinde,

habe ein kleines Fernsteuerprogramm für eine NIKON DSLR geschrieben (ist 
kein RC5 o.ä., siehe http://www.bigmike.it/ircontrol/). Auf dem mega8 
funktioniert das Programm mit Timer0 und Timer1 perfekt.

Will das ganze wegen der Baugröße auf einen Tiny 8-Beinling (habe 13er 
da) portieren und muss bei meinem 13er auf den 16Bit-Timer verzichten.

Die Timer-ISRs haben bei dem mega derzeit folgende Aufgaben:

Timer0 (Modulation): Toggeln von PinA mit der doppelten Frequenz von der 
TSOP-Frequenz (also hier ca. 38000Hz - sollte eigentlich 76000Hz sein, 
aber komischerweise funktioniert 38000Hz wunderbar, also nehme ich die 
niedrigere Frequenz)

Timer1 (Message-Bits): Hochzählen einer Variable in der kleinsten 
"Schalt"-Zeiteinheit (hier ca. alle 400us). Die Variable wird im 
Hauptprogramm über while-Schleifen abgefragt und PinB jeweils nach dem 
Erreichen eines Vielfachen der kleinsten Schalt-Zeiteinheit auf 1 oder 0 
gesetzt.


Schaltplan:


----\
    |
    |PinA ---\
T   |        |
I   |       LED
N   |        |
Y   |        R
1   |        |
3   |PinB ---/
    |
----/


Die Lösung mit den zwei Timern ist sicher nicht das beste, jedoch habe 
ich bis jetzt nichts anderes hinbekommen, was klappte. Ich habe 
versucht, in dem Timer0 über eine Zusatzvariable alle 15 
Timer0-Interrupts die Variable, die in Timer1 hochgezählt wurde zu 
inkrementieren.

38000 Hz / (1 / 400 us) = 15,2

Funktioniert aber scheinbar nicht.

Wer hat eine Idee dazu?

Danke!!

Gruß Max

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.