On a 16f628a
Code:@ DEVICE MCLR_OFF @ DEVICE hs_osc @ DEVICE wdt_off @ DEVICE lvp_off @ DEVICE protect_off Define OSC 20 INTCON = 0 CMCON = 7 TRISA = 0 TRISB = 0 StepsRotating CON 93 RotatingMin CON 267 RotatingMax CON 1218 Position VAR WORD PositionBefore VAR WORD Counter VAR WORD PositionBefore = 0 LR VAR BYTE RotatingPos VAR WORD Movement VAR WORD ServoMotor VAR PORTB.1 GOSUB RoutineStartingPos ES: LR = 1 RotatingPos = RotatingMin ES_HS: ES_HS_Drehung: WHILE 1 = 1 IF LR = 1 THEN WHILE RotatingPos < RotatingMax GOSUB RoutineRotate RotatingPos = RotatingPos + StepsRotating WEND LR = 0 ENDIF IF LR = 0 THEN WHILE RotatingPos > RotatingMin GOSUB RoutineRotate RotatingPos = RotatingPos - StepsRotating WEND LR = 1 ENDIF WEND END RoutineRotate: FOR Movement = 0 TO 1000 / 20 Low ServoMotor Pulsout ServoMotor,RotatingPos Pause 20 NEXT Movement RETURN RoutineStartingPos: FOR Counter = 0 TO 1000 / 20 Low ServoMotor Pulsout ServoMotor,(RotatingMax+RotatingMin)/2 Pause 20 NEXT Counter RETURN




Bookmarks