Stap 10: Kopiëren en plakken van de broncode
/ * Kopiëren vanaf hier naar het einde van deze tekstVoorbeeld voor DIP32 (8mHz)
*/
Dim M00 als nieuwe pwm(PP0)
Dim M01 als nieuwe pwm(PP1)
Dim M11 als nieuwe pwm(PP2)
Dim M10 als nieuwe pwm(PP3)
Dim IR1 als nieuw ADC(PAD05) //ADC object voor scherpe Sensor (voorzijde)
Dim IR1Result als nieuwe byte
Dim IR2 als nieuw ADC(PAD03) //ADC object voor scherpe Sensor (terug)
Dim IR2Result als nieuwe byte
Dim myChar als nieuwe byte //Variable winkel ontvangen tekens
Dim S as new SCI(PS0,PS1) //SCI object
Dim SPK als nieuwe DIO(PM4) / / met behulp van spreker op de SSIM
Const ontime = 20
Dim duur als nieuw woord
Const A2 = 2273 / / muziek notities
Const A3 = 1136 / / muziek notities
Const A4 = 568 / / Music notes om geluid als robot iets ziet
Dim WLED1 als nieuwe DIO(PM2) //LEDs op de wielen
Dim WLED2 als nieuwe DIO(PM3) //LEDs op de wielen
Dim lus als nieuwe byte
Const af = 0
Const op = 1
Const FOREVER = 1
Const A = 200
Const B = 10
Const DEL_1MSEC = 1000
sub DelayMsec (in byte milliseconden)
terwijl (milliseconden > 0)
System.Delay (DEL_1MSEC) //Delay 1000 microseconde te maken 1 milliseconde
milliseconden = milliseconden - 1
einde terwijl
end sub
sub stop() / / om motoren stoppen
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)
end sub
sub goback() / / robot zal terugkeren
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)
end sub
sub turnright() / / draai de robot naar rechts
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)
end sub
sub turnleft() / / draai de robot links
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)
end sub
sub goahead() / / Maak de robot vooruit
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
end sub
sub wait3() / / mijn eigen vertragingen
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
end sub
sub wait4()
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
end sub
sub wait5()
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
DelayMsec(A)
end sub
sub wait10() //long vertraging
loop = 1
terwijl (lus < 11)
DelayMsec(A)
lus = lus + 1
einde terwijl
end sub
sub playsound() / / te spelen de noten
duur = ontime
terwijl (duur > 0)
SPK. PIN_Out(PM4,on)
systeem. Delay(a2)
SPK. PIN_Out(PM4,off)
systeem. Delay(a2)
duur = duur - 1
einde terwijl
DelayMsec(B)
duur = ontime
terwijl (duur > 0)
SPK. PIN_Out(PM4,on)
systeem. Delay(a3)
SPK. PIN_Out(PM4,off)
systeem. Delay(a3)
duur = duur - 1
einde terwijl
DelayMsec(B)
duur = ontime
terwijl (duur > 0)
SPK. PIN_Out(PM4,on)
systeem. Delay(A4)
SPK. PIN_Out(PM4,off)
systeem. Delay(A4)
duur = duur - 1
einde terwijl
DelayMsec(B)
end sub
belangrijkste
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 en 4 tekens te worden gebufferd toestaan
System.INTS_On () //TURN op ONDERBREEKT!
S.SER_Put_string ("Dit is een test")
S.SER_Put_char ('\n')
S.SER_Put_char ('\r')
terwijl (FOREVER)
IR1. ADC_Start (wacht, ADC_MODE_8ONCE) / / de waarde van de voorste scherpe sensor leest
IR1. ADC_Read (PAD05, IR1Result)
IR2. ADC_Start (wacht, ADC_MODE_8ONCE) / / de waarde van de terug scherpe sensor leest
IR2. ADC_Read (PAD03, IR2Result)
S.SER_Put_decimal(IR2Result,FILLUP_SPACE) / / de waarde verzenden naar de hyper terminal van windows
S.SER_Put_char ('\n') / / Maak een nieuwe lijn op de hyper terminal
S.SER_Put_char ('\r')
Als ((IR1Result == 25) of (IR1Result > 25))
Stop()
PLAYSOUND()
wait5()
WLED1. PIN_Out(PM2,on)
WLED2. PIN_Out(Pm3,on)
GoBack()
wait5()
Als ((IR2Result == 25) of (IR2Result > 25))
Stop()
PLAYSOUND()
wait5()
turnleft()
wait3()
goahead()
eind als
turnright()
wait3()
anders
goahead()
eind als
Als ((IR2Result == 25) of (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()
anders
goahead()
eind als
einde terwijl
einde main