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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.