www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kleines mega8 Programm auf tiny13 - Frage zu Timern


Autor: Max (Gast)
Datum:

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

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.