-
Ich habs jetzt hin bekommen
Ich musste nur das Prescale vergrössern. Ich hatte immer den Wert 1 nur genommen. So ware die Periode viel zu kurz.
Code:
$regfile = "m32def.dat"
$crystal = 1000000
Config Pind.4 = Output
Config Pind.5 = Output
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 64
Do
Compare1a = 249
Waitms 1000
Compare1a = 248
Waitms 1000
Compare1a = 247
waitms 1000
Loop
End
Nun das ist jetzt mein Beispiel. Ist leider nur sehr ungenau.
Deshalb habe dann von 8bit auf 10bit erhöht.
Daruf habe ich dann gesehen das ich anhand eine Formel aufstellen konnte und voila, es funktioniert jetzt endlich.
Code:
$regfile = "m32def.dat"
$crystal = 1000000
Config Pind.4 = Output
Config Pind.5 = Output
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 8
Do
Compare1a = 900
Waitms 1000
Compare1a = 910
Waitms 1000
Compare1a = 920
Waitms 1000
Loop
End
Zuerst hatte ich meine Eigene Formel, aber danach hatte ich bei RN Wissen nachgeschaut und hatte die dort vorgegeben Formel dann Verstanden.
(fq/Prescale)/(1024*2) = fa
fq = Frequenz Takt des Microcontroller
fa = Frequenz am Ausgang
Nun kann ich weiter machen.