PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CCBASIC - Code



myplexy
22.08.2004, 17:38
Jetzt bekomme ich endlich das Robotersystem von Conrad Elektronik. Daher bin ich schon CCBASIC am lernen. Jetzt habe ich einen kleines Programm geschrieben und wollte fragen, ob es jemand testen kann, denn ich bekomme den Roboter erst.

Hier den Code



'++++++++++++++DEFINITONEN+++++++++++++++++
'--------------subsystem---------------
define LBYTE byte[1]
define HBYTE byte[2]
define SUBCMD byte[3]
define SYSTEM_STATUS byte[5]
define SYSTEM &H01C4
define COMNAV &H0154
define sdio port[1]
define sclio port[3]
define strobe port[4]
define DATALINE port[1]
define CLOCKLINE port[2]
#NO_ACS_INT
SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
HBYTE=00:SUBCMD=2:sys COMNAV:return
define EXTPORT byte[4]
#SUBSYS_PWR_ON
sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE) or 8
sys SYSTEM:return
'-------------------acs-------------------
define acsl_f bit[33]
define acsr_f bit[34]
'-----------------antrieb----------------
define REVR &H0101 'ANTRIEB RECHTS RÜCKWÄRTS
define REVL &H0106 'ANTRIEB LINKS RÜCKWÄRTS
define FWDR &H010B 'ANTRIEG RECHTS VORWÄRTS
define FWDL &H0110 'ANTRIEB LINKS VORWÄRTS
define ROTR &H0115 'RECHTS DREHEN
define ROTL &H0119 'LINKS DREHEN
define REV &H011D 'RÜCKWÄRTS
define FWD &H0121 'VORWÄRTS
define SPEED_L da[1]
define SPEED_R da[2]
define REV_L port[6]
define REV_R port[5]
define PLM_SLOW &H01C4
REV_L=on:REV_R=on:SYS PLM_SLOW
'+++++++++++++++++++PROGRAMM+++++++++++++++++
gosub SUBSYS_PWR_ON
SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255
#loop
IF (acsl_f = on and acsr_f = on) then goto drehen else goto loop
If (acsl_f = on or acsr_f = on) then goto links_rechts_ausw else goto loop
'::::drehen:::::
#drehen
SYS FWDR:SYS REVL:SPEED_L=255:SPEED_R=255
pause 10
SPEED_L=0:SPEED_R=0:goto loop
'::::Auswahl ob ausweichen nach LINKS oder RECHTS:::::
#links_rechts_ausw
IF acsl_f = on then goto nach_rechts
IF acsr_f = on then goto nach_links
':::::::::nach rechts ausweichen::::::::
#nach_rechts
SYS FWDR:SYS REVL:SPEED_L=255:SPEED_R=0
pause 10
SPEED_L=0:SPEED_R=0:goto loop
':::::::::nach rechts ausweichen::::::::
#nach_links
SYS FWDR:SYS REVL:SPEED_R=0:SPEED_R=255
pause 10
SPEED_L=0:SPEED_R=0:goto loop

Smi
01.09.2004, 04:25
nachdem dein prog entschieden hat das es nach li oder re ausweicht und sich dein robby dreht bleibt er stehen da du den antrieb auf 0 setzt und zu loop zurückspringst.
die init antrieb 255 steht vor loop!!

würde auch eine if abfrage der sensoren machen bevor statt pause 10

myplexy
01.09.2004, 13:08
Danke !!!
Habe Code verbessert. Bald kann ich auch selber meine Programme testen :-)
Bekomme am 26.Sep nämlich meinen Roby

Smi
01.09.2004, 23:10
ich habe das prog so ahnlich aufgebaut aber ein remot controll beigefügt sozusagen mit fernbedienung steuerbar kann dir ja mal posten

michele4711
17.09.2004, 12:28
ich habe das prog so ahnlich aufgebaut aber ein remot controll beigefügt sozusagen mit fernbedienung steuerbar kann dir ja mal posten

Hi, habe dein prog mal auf den Robbi gespielt, tut aber nix.
Haast du andere Fernbedienungsbefehle als im IR Beispiel?

Smi
17.09.2004, 13:58
Ja hab ich

Ich habe von meinen alten TV die fernb. genommen und mir die codes mit hilfe des beispielprog. von C rausgeschrieben. Ist praktischer weil ein steuerkreuz drauf ist.