1..4 beliebige Pin's
PinA1 = PWM1 PinA2 = PWM1 negiert PinB1 = PWM2 PinB2 = PWM2 negiert
Durch eintragen einer Pinnummer wird der Ausgang zugewiesen. Durch eintragen von -1 wird die Funktion keinem Ausgang zugewiesen.
Es ist zu beachten das schwankungen der Betriebsspannung des Propellers sich auf das Ausgangssignal auswirken. Wie man auf beiden Bildern oben erkennen kann.
PUB Init(PinA1,PinA2,PinB1,PinB2) : okay 'start pwm on Pin @ 8 kHz 0..100,00% stop longfill(@sDutyA, 0, 9) sDutyA := 10000/3 sDutyB := 10000/2 sPinAOut1 := |< PinA1 sPinAOut2 := |< PinA2 sPinBOut1 := |< PinB1 sPinBOut2 := |< PinB2 ' sCtraVal := %00100 << 26 + PinA1 ' sCtrbVal := %00100 << 26 + PinB1 sCtraVal := %00101 << 26 + PinA1 + PINA2 << 9 sCtrbVal := %00101 << 26 + PinB1 + PINB2 << 9 sPeriod := 10000 okay := cogon := (cog := cognew(@entry,@sDutyA)) > 0 PUB stop '' Stop object - frees a cog if cogon~ cogstop(cog) longfill(@sDutyA, 0, 9) PUB SetPeriod(counts) ' set pwm period in clock cycles, frequency = (_clkfreq / period) sPeriod := counts PUB SetDutyA(counts) if (counts < 0) counts := 0 if (counts > 10000) counts := 10000 sDutyA :=counts PUB SetDutyB(counts) if (counts < 0) counts := 0 if (counts > 10000) counts := 10000 sDutyB :=counts