Strangly enough, it kinda work now.. a bit out of scale and so on, but mostly work, after the 'low bortb.0'
HOWEVER..
Now I got to the next part, trying to actually being able to move the servo myself.. so I wrote a bit of code that I thought should work.
..I have pullup-resistors (10k) on a0 and a1 and wiring them to ground when I activates them.Code:@ device HS_OSC,MCLR_OFF,LVP_OFF,WDT_OFF,PROTECT_OFF DEFINE OSC 4 'Use b1 to hold pulse width variable for servo 1 b1 var byte 'initialize variables b1 = 150 low portb.0 ' put the servoport low. main: pulsout portb.0, b1 'send current servo 1 position out if porta.0 = 0 then left1 'check for pressed switch 0 if porta.1 = 0 then right1 'check for pressed switch 1 pause 18 goto main left1: b1 = b1 + 1 if b1 >254 then max1 goto main right1: b1 = b1 - 1 if b1 <75 then min1 goto main max1: b1 = 75 goto main min1: b1 = 254 goto main
..Well, the problem is that the servo just goes to one endposition and stay there regardless what I do with a0 and a1 ?
..HOWEVER.. if I comment out theese two lines:
..The servo "works", it put itself in the middle position (well not really middle but more or less.)Code:if porta.0 = 0 then left1 'check for pressed switch 0 if porta.1 = 0 then right1 'check for pressed switch 1
Why ? ..I could think that my subroutines are destroying the timing, bit it aint working even if I dont touch the inputs ?




Bookmarks