'PIC16F88
'Probado en la placa Pic EBasic con un servo Futaba
Define CONF_WORD = 0x2f10 'Configuracion de fuses
Define CONF_WORD_2 = 0x3ffc 'Configuracion de fuses
Define CLOCK_FREQUENCY = 8
'------------------------------------------------------------------------------------------
ANSEL = 0x00 'los pin I/O digitales (no analógicos)
OSCCON = 0x7e 'set intrc To 8mhz, se usara reloj interno a 8Mhz
CMCON = 0x07 'comparador a off
TRISA = %00000000
TRISB = %11101111
x = 1000 'Posición de inicio del servo
aux = 20000 - x 'Calcula lo que resta hasta llegar al periodo de la señal
flag = 1 'Dirección de inicio
INTCON.INTE = 1
Enable
LOOP:
PORTB.4 = 1 'Señal control a On
WaitUs x 'Tiempo activo señal de control servo
PORTB.4 = 0 'Señal control a Off
WaitUs aux 'Tiempo a cero señal de control servo
IF x > 2000 THEN flag = 0 'Establece limite izquierda
IF x < 1000 THEN flag = 1 'Establece limite derecha
IF flag = 1 THEN x = x + 1 'Giro a la izquierda
IF flag = 0 THEN x = x - 1 'Giro a la derecha
aux = 20000 - x 'Calcula lo que resta hasta llegar a los 20mSeg
GOTO LOOP
x = x + 100
INTCON.INTF = 0
RESUME
'------------------------------------------------------------------------------------------