Programmiere mit dem Arduino einen AtTiny85, leider bekomme ich FastPWM
nicht eingestellt, dass es mit OCR0A als Top läuft, messe keine Frequenz
an PB0.
[CODE]
void setup(){
DDRB = (1 << PB0);
TCCR0A = ((1 << COM0A1) | (1 << WGM01) | (1 << WGM00));
TCCR0B = ((1 << WGM02)|(1 << CS01));
OCR0A = 26;
}
[CODE]
Ganz durchgeblickt hab ich den FastPWM leider nicht, aber mit WGM0x in
Modus 7 ist OCR0A = TOP, also müsste eine Frequenz von 38462Hz ankommen.
((Clock [8.000.000]/ Prescaler [8])/OCR0A [26])
Nur wie würde ich jetzt den DutyCycle einstellen, wennn OCR0A jetzt TOP
ist?
Vielen Dank, das war der kleine Anstoß der mir gefehlt hat!
Ausgang OC0A fällt in diesem Modus ja leider weg.
Dann kleine Frage am Rande:
Gibt es eine bessere Möglichkeit den Ausgang OC0B zu schalten, als mit
COM0B0 und COM0B1 zu arbeiten oder den Ausgang als Eingang zu schalten?
Es geht mir um das Schalten von Infrarot-Signalen.
Bohlen schrieb:> Gibt es eine bessere Möglichkeit den Ausgang OC0B zu schalten, als mit> COM0B0 und COM0B1 zu arbeiten oder den Ausgang als Eingang zu schalten?
Nein. Es gibt nicht nur keine bessere, sondern sogar überhaupt keine
andere Möglichkeit.
Allerdings: Was zum Teufel gefällt dir an der DDR-Lösung eigentlich
nicht?
Hallo Bohlen (Gast),
ich habe kürzlich was Ähnliches gemacht - Tiny 25 und 85
haben ja nur unterschiedliche Speichergröße.
Ich war leider nur zu faul, die Bits in den TCCR0x-Registern
im ASM-Text "ordentlich" zu benennen...
Funktioniert recht gut, aber vielleicht kommt uns zusammen noch
eine bessere Idee!
Hier meine passenden ASM-Code-Ausschnitte:
Oldie schrieb:> Funktioniert recht gut, aber vielleicht kommt uns zusammen noch> eine bessere Idee!
Und was heißt besser? Was sind denn deine/eure Erwartungen?
Mit freundlichen Grüßen,
Karol Babioch
@ Karol Babioch
Machst du auf Anhieb immer alles unverbesserbar perfekt?
Z.B. könnte bei mir das
cbi PortB, OUT_IR
überflüssig sein, da ich den OC0B-Portpin im Low-Zustand von
der PWM-Funktion entkopple. Vielleicht reicht es, wenn vorher
mal der Portpin als "normaler" Ausgang auf NULL gesetzt wurde?
Ist also mehr eine "Angst"-Zeile...
(Wenn er NICHT definitiv NULL ist und bleibt, ist aber irgendwann
die Batterie schnell leer und vielleicht die IR-LED kaputt.)