Paso 10: Copiar y pegar el código fuente
/ * Copia de aquí al final de este textoEjemplo para DIP32 (8mHz)
*/
M00 DIM como nuevo pwm(PP0)
M01 DIM como nuevo pwm(PP1)
M11 DIM como nuevo pwm(PP2)
M10 DIM como nuevo pwm(PP3)
Dim IR1 como nuevo objeto ADC(PAD05) //ADC para Sensor Sharp (delantero)
Dim IR1Result como nuevo byte
IR2 DIM como nuevo objeto ADC(PAD03) //ADC para Sensor Sharp (nuevo)
Dim IR2Result como nuevo byte
Dim myChar como nuevo //Variable byte a caracteres de tienda recibida
Dim S como nuevo objeto SCI(PS0,PS1) //SCI
Dim SPK como nueva DIO(PM4) / / altavoz utilizando el SSIM
ontime const = 20
poca duración como nueva palabra
A2 const = 2273 / / notas musicales
Const A3 = 1136 / / notas musicales
Const A4 = 568 / / notas de la música para hacer sonido al robot ve algo
Dim WLED1 como nueva DIO(PM2) //LEDs en las ruedas
Dim WLED2 como nueva DIO(PM3) //LEDs en las ruedas
Dim lazo como nueva bytes
Const OFF = 0
Const a = 1
Const para siempre = 1
Const A = 200
Const B = 10
Const DEL_1MSEC = 1000
Sub DelayMsec (en milisegundos bytes)
al mismo tiempo (milisegundos > 0)
//Delay System.Delay (DEL_1MSEC) 1000 microsegundo para hacer 1 milisegundo
milisegundos = milisegundos - 1
fin mientras
sub final
Sub stop() / / para hacer que los motores parada
M00. PWM_Start(PWM_MAIN_CLK,0,250,250)
M01. PWM_Start(PWM_MAIN_CLK,0,250,250)
M10. PWM_Start(PWM_MAIN_CLK,0,250,250)
M11. PWM_Start(PWM_MAIN_CLK,0,250,250)
sub final
Sub goback() / / robot volverá
M00. PWM_Start(PWM_MAIN_CLK,0,250,180)
M01. PWM_Start(PWM_MAIN_CLK,0,250,250)
M10. PWM_Start(PWM_MAIN_CLK,0,250,180)
M11. PWM_Start(PWM_MAIN_CLK,0,250,250)
sub final
Sub turnright() / gire el robot a la derecha
M00. PWM_Start(PWM_MAIN_CLK,0,250,250)
M01. PWM_Start(PWM_MAIN_CLK,0,250,180)
M10. PWM_Start(PWM_MAIN_CLK,0,250,250)
M11. PWM_Start(PWM_MAIN_CLK,0,250,250)
sub final
Sub turnleft() / girar el robot hacia la izquierda
M00. PWM_Start(PWM_MAIN_CLK,0,250,250)
M01. PWM_Start(PWM_MAIN_CLK,0,250,250)
M10. PWM_Start(PWM_MAIN_CLK,0,250,250)
M11. PWM_Start(PWM_MAIN_CLK,0,250,180)
sub final
Sub goahead() / / hacer el robot hacia adelante
M00. PWM_Start(PWM_MAIN_CLK,0,250,250)
M01. PWM_Start(PWM_MAIN_CLK,0,250,180) //left dc
M10. PWM_Start(PWM_MAIN_CLK,0,250,250)
M11. PWM_Start(PWM_MAIN_CLK,0,250,180) //right dc
sub final
Sub wait3() / / mi propia retrasos
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
sub final
Sub wait4()
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
sub final
Sub wait5()
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
sub final
Sub wait10() //long retraso
LOOP = 1
mientras (lazo < 11)
DelayMsec(A)
Loop = bucle + 1
fin mientras
sub final
Sub playsound() / / para tocar las notas
duración = ontime
mientras (duración > 0)
SPK. PIN_Out(PM4,on)
sistema. Delay(a2)
SPK. PIN_Out(PM4,OFF)
sistema. Delay(a2)
duración = duración - 1
fin mientras
DelayMsec(B)
duración = ontime
mientras (duración > 0)
SPK. PIN_Out(PM4,on)
sistema. Delay(a3)
SPK. PIN_Out(PM4,OFF)
sistema. Delay(a3)
duración = duración - 1
fin mientras
DelayMsec(B)
duración = ontime
mientras (duración > 0)
SPK. PIN_Out(PM4,on)
sistema. Delay(A4)
SPK. PIN_Out(PM4,OFF)
sistema. Delay(A4)
duración = duración - 1
fin mientras
DelayMsec(B)
sub final
principal
PWM. PWM_Res_PP0145 (TIMER_DIV_16, 0)
PWM. PWM_Res_PP23 (TIMER_DIV_16, 0)
S.SER_Setup(SER_BUFFER_4,BAUD9600) //Setup SCI y 4 personajes a ser protegido
System.INTS_On () //TURN en interrumpe!
S.SER_Put_string ("Esto es una prueba")
S.SER_Put_char ('\n')
S.SER_Put_char ('\r')
mientras (por siempre)
IR1. ADC_Start (espera, ADC_MODE_8ONCE) / Lea el valor del delantero sensor sharp
IR1. ADC_Read (PAD05, IR1Result)
IR2. ADC_Start (espera, ADC_MODE_8ONCE) / leer valor del sensor nuevo sharp
IR2. ADC_Read (PAD03, IR2Result)
S.SER_Put_decimal(IR2Result,FILLUP_SPACE) / / envíe el valor al hyper terminal de windows
S.SER_Put_char ('\n') / / hacer una nueva línea en el hyper terminal
S.SER_Put_char ('\r')
Si ((IR1Result == 25) o (IR1Result > 25))
STOP()
PlaySound()
wait5()
WLED1. PIN_Out(PM2,on)
WLED2. PIN_Out(PM3,on)
GoBack()
wait5()
Si ((IR2Result == 25) o (IR2Result > 25))
STOP()
PlaySound()
wait5()
turnleft()
wait3()
goahead()
terminar si
TurnRight()
wait3()
otra cosa
goahead()
terminar si
Si ((IR2Result == 25) o (IR2Result > 25))
WLED1. PIN_Out(PM2,on)
WLED2. PIN_Out(PM3,on)
STOP()
wait5()
TurnRight()
wait3()
WLED1. PIN_Out(PM2,OFF)
WLED2. PIN_Out(PM3,OFF)
goahead()
wait3()
otra cosa
goahead()
terminar si
fin mientras
final principal