das würde so hinhauen, entspricht aber nicht dem was du geschrieben hast. bei dir ist immer 50% / 50%, egal wie du rate wählst.
ich hab meine softwarepwm so geschrieben gehabt:
Code:
Pwmroutine:
If Pwmverhaeltnis > Pwmwert Then
Portc.5 = 1
Else
Portc.5 = 0
End If
Incr Pwmwert
If Pwmwert > 255 Then Pwmwert = 0
Return
die Pwmroutine entspricht dem Aufruf durch den Timer.
Das PWM-Verhältnis ist eine zahl zwischen 0 und 256.
pwmwert ist eine zahl die in der routine immer von 0 bis 255 steigt und dann wieder 0 ist.
ist das pwmverhältnis jetzt 100 dann wird bei 100 aufrufen der ausgang 1 und bei den restlichen 0. durch die zahl änderst du dann das verhältnis, 0 ist immer aus, 256 ist immer an und halt die stufen dazwischen.
wenn du mehr als 255 stufen brauchst musst du nur den wertebereich anpassen.
gruss Christian
Lesezeichen