Asselhead hat geschrieben: ↑30.06.2020, 13:33
Hallo Tom,
Das wäre Prima, dann würde ich Deinen Sketch erstmal nur für den 328PB anpassen und die PWM testen.
Ich hoffe ich habe vom 328PB noch welche. Werde gleich mal nachschauen.
Ob ich noch nen 4-Pin Lüfter zum testen da habe, muss ich auch mal schauen, ansonsten wird einer bestellt.
Könnte aber auch am Oscar kontrollieren.
Vielen Dank schon mal - Tom und Jérôme!
So sah mein code für 25kHz aus:
Code: Alles auswählen
pinMode(9, OUTPUT); // OC1A
TCCR1A = 1 << WGM11 | 1 << COM1A1 | 1 << COM1B1; // Pwm, Phase Correct, Top value in ICR1
TCCR1B = 1 << CS10 | 1 << WGM13; // clk/1
ICR1 = 320; // fPwm 25kHz (16MHz Quarz)
OCR1A = 160; // Pwm value 50%
Das war ein Arduino mit 16MHz. Bei 8MHz den Wert 320 auf 160 verringern, OCR1A Wert für 50% wäre dann natürlich 80.
Das ist ein Kanal, pin 9, OC1A.
Es geht mit dem gleichen Timer ein 2. Kanal, pin 10, OC1B (bei AskSinPP Geräten normalerweise für /CS CC1101 verwendet).
Wie gesagt, ich würde vermuten der code läuft genau so mit Timer 3/4 beim PB wenn man die Register anpasst.
Belegung der OC3x/OC4x pins beim PB ist nicht ideal wie ich gerade sehe, die liegen auf der Seriellen Port 0 und pin D2.
pin D2/INT0 für CC1101 könnte man im AskSinPP sketch z.B. auf D3/INT1 legen.
Wenn du dann weiterhin die serielle nicht brauchst hättest du 3 unabhängige Kanäle an den pins D0, D1, D2 mit den beiden 16bit Timern 3/4..
Hope that helps,