Hallo

Bei den "laienhaften" Vorschlägen kann ich mich auch beteiligen. Ich habe keine praktische Erfahrungen mit (selbstprogramierter Hardware-) PWM, schon gar nicht in Bascom. Beim Versuch die Konfiguration im Testcode oben nachzuvollziehen bin ich über die Byte/Wort-Problematik gestolpert (Datenblatt Mega32 Seite 89 "Accessing 16-bit Registers").

Selbstverständlich gehe ich auch davon aus dass Bascom dies richtig macht, aber sicherheitshalber würde ich beim Schreiben von Pwm1a/b die Interrupts sperren. Ein Fehler beim Schreiben des High-Byte könnte meiner Meinung nach auch einen plötzlichen großen Motorstrom verursachen.

Code:
 'abbremsen 
 Do 
DISABLE INTERRUPTS
    Pwm1b = I 
ENABLE INTERRUPTS

    Waitms 40 
    I = I - 5 
 Loop Until I < 10
Gruß

mic