hi kees, great to know that's working for you now.

p.s.for some reason all my indentation disappears when I posted this message, don't know why
must use VB code click here to know how

after that your code can look something like that
Code:
motor CON 3
sensor VAR PORTB.0
temp VAR WORD
setspeed VAR BYTE 'speed set by user
power VAR WORD 'control variable (CV) , PWM dutycycle
PV VAR WORD 'process value, or actual speed 
error VAR BYTE 'difference between set speed and actual speed
Kprop VAR BYTE 'constant for proportional feedback control
Kprop = 4

run:
     Pot 5,25,setspeed 
     PulsIn sensor,0,temp ' measure speed 
     IF temp2 > 0 Then ' check if motor is running
          PV = 10000 / temp ' depends on encoder and motor
          IF PV >255 Then PV = 255
          IF setspeed > PV Then
               error = setspeed - PV
               power = power + (error / Kprop) 'new PWM value
               IF power > 255 Then power = 255 'otherwise overflow
          Else
               error = PV - setspeed 
               power = power - (error / Kprop) 'new PWM value
               IF power > 255 Then power = 0 'otherwise overflow EndIF 
     Else
          power = setspeed ' so a motor without optical sensor 
     EndIF ' can also be used

     HPwm motor,power,10000 ' Send a PWM signal at 10kHz, drive motor 
     LCDOut $FE,1,"spd ",DEC3 setspeed 'show on screen
     LCDOut $FE,$C0,"pv ", DEC3 PV 'for debugging
     GoTo run
and once it's done, it appear that there's one ENDIF missing