INFO - FAQ - CC2-Forum - CCPro-Forum |
|
hallo leute, habe nach langer zeit mich mal wieder mit meiner ccontrol 1 und somit meinem kleinen roboter-auto beschäftigt. soweit funktioniert alles recht gut, er erkennt hindernisse fährt zurück und dreht um. hardware: kleiner metallrahmen (metallbaukasten) 2 schrittmotoren 2 leistungstreiber (l293d) 1 sharp mess-sensor (gp2d12) jetzt möchte ich gern mal testen die schrittmotoren über assembler anzusteuern - aber irgendwie weiß ich nicht recht wie? habe zwar schon ein kleines assembler prog zusammen aber die schrittmotoren zabbeln nur. kann ich einfach das bitmuster der basic tabellen in assembler übernehmen? danke euch für die hilfe - mfg rene & frohes fest euch allen .... mein basic-code (läuft gut) '############################################################ '# '# LODERO Steuerprogramm '# 13.12.2010 '# lodero.bas '# '# © 2001 - 2010 René Jahn '# '############################################################ '# '# Definitionen der Port '# Definitionen der Variablen Define MotorPort Byteport[1] 'Motor links und rechts Define LEDPort Byteport[2] 'LED (rote LED = Stoplicht) Define GP2_Sensor AD[1]'IR Abstandssensor ' 'ca. 10cm = 240 'ca. 15cm = 170 'ca. 20cm = 140 'ca. 30cm = 100 Define tabstep Word 'Schritte für Tabellen (Bitmuster MotorPort) Define steps Word 'Schritte für Motoren Define speed Word 'Geschwindigkeit für Motoren (Voll- oder Halbschritt) ' 'Vollschritt '100 Schritte = 1/2 Umdrehung (ca. 8,5 cm Fahrweg) '200 Schritte = 1 Umdrehung (ca. 17 cm Fahrweg) ' 'Halbschritt '100 Schritte = 1/4 Umdrehung (ca. 4,2 cm Fahrweg) '200 Schritte = 1/2 Umdrehung (ca. 8,5 cm Fahrweg) '400 Schritte = 1 Umdrehung (ca. 17 cm Fahrweg) ' 'Halbschritt '210 Schritte = 90° Drehung '420 Schritte = 180° Drehung '840 Schritte = 360° Drehung Define i Word 'Zähler '########################################################### '# '# Initialisierung '# alle Ports Off #init MotorPort = &B00000000 LEDPort = &B00000000 '############################################################ '# '# Initialisierung der Messschleife #initloop steps = GP2_Sensor 'Abstand als Schritte übernehmen 'ca. 15 cm Entfernung If GP2_Sensor <= 170 Then gosub go_low Else gosub go_back goto initloop '########################################################### '# '# Funktionen zum Fahren #go_high For i = 1 to steps tabstep = tabstep + 1 looktab m_voll, (tabstep and 3), MotorPort Next return #go_low For i = 1 to steps tabstep = tabstep + 1 looktab m_halb, (tabstep and 7), MotorPort Next return #go_back For i = 1 to steps tabstep = tabstep - 1 looktab m_halb, (tabstep and 7), MotorPort Next return #go_backturn For i = 1 to steps tabstep = tabstep - 1 looktab m_halb, (tabstep and 7), MotorPort Next return #turn_left For i = 1 to steps tabstep = tabstep + 1 looktab turn_halb, (tabstep and 7), MotorPort Next return #turn_right For i = 1 to steps tabstep = tabstep - 1 looktab turn_halb, (tabstep and 7), MotorPort Next return '############################################################ '# '# Tabellen (Bitmuster) für Schrittmotoren 'beide Motoren table m_voll 'schnell 85 153 170 102 tabend table m_halb 'langsam 85 17 153 136 170 34 102 68 tabend 'Drehen table turn_voll 'schnell 86 154 169 101 tabend table turn_halb 'langsam 84 22 146 138 168 41 97 69 tabend 'Motor Links table ml_voll 'schnell 5 9 10 6 tabend table ml_halb 'langsam 5 1 9 8 10 2 6 4 tabend 'Motor Rechts table mr_voll 'schnell 80 144 160 96 tabend table mr_halb 'langsam 80 16 144 128 160 32 96 64 tabend |
Antwort schreiben |