abend,

hmm, das was du mit deinem programm machst @senk ist so eine art "zwangs-PWM" oder so was ähnliches.

mit: do
portb = 0
loop
muß der contoller den port immer wieder auf 0 setzen auch wenn er schon 0 ist.
da der controller dafür ja eine gewisse zeit braucht, läuft der motor nicht mit voller leistung.
das programm von @Marco78 ist richtig - so müsste es gehen.

das umdrehen der polung wird nichts bringen und geht so auch nicht.
da der ausgang am controller nicht 0 ist sonder +0,... bis + 1,...Volt du hast kein echtes GND am ausgang.

eine ausgangstreiber-stuffe währe schon besser sonst machts dein controller nicht lange. mit einer h-brücke oder auch nur mit nem fet am ausgang als verstärker kann dem controller nichts passieren und du könntest sogar den motor vor und zurück laufen lassen.

gruß mrqu