I've got a L293D and I've got a PIC16F877A outputting PWM. It's not real PWM, just using Timer0 to turn on  a pin for 2ms and off for 18ms, bringing a total of 20ms period. 
 
[L293D guide Pic][1]

I got VSS, VC, CHIP 1 and 2 up to 5V. 

My current method of controlling the motor is to turn input 1 and 2 on-off from the PWM, to control the outputs 1 and 2. My motor is a hacked servo motor that runs 360 degrees. What I did is that, when input 1 is on and 2 is off, prompting the motor to run one way, input 1 is not always on. Since input 1 is the PWM output from the PIC, it'll turn on 2ms and off 18ms continuously so. Using this setup, my motor isn't properly working; sometimes it runs slower than usual(this is what I want) but most of the time it just hums in place.

How can I improve this configuration, or is there a better way to control motor speed using L293D that I'm not aware of? If possible I want to use l293D as buying new components/ICs are too much of a hassle... 


  [1]: http://www.hvwtech.com/products/341/17310_G1.gif "L293D guide pic"