bin jetzt so weit das alle funktionene gegeben sind die motoren machen genau das was sie sollen.

hier:

Code:
'Schrittmotor-Interface für die C-Control
'-----Unipolare-Ansteuerung------
'------Für AEG SO26/48------------

'Definition der Schrittmotor-Ansteuerung des Fahrwerkes
Define Motorport    Byteport [1] 'Motor A und B

'Phasen und Portbelegung der Motoren A und B
Define MotA1          Port[1]      'Motor A - Phase 1
Define MotA2          Port[2]      'Motor A - Phase 2
Define MotA3          Port[3]      'Motor A - Phase 3
Define MotA4          Port[4]      'Motor A - Phase 4
Define MotB1          Port[5]      'Motor B - Phase 1
Define MotB2          Port[6]      'Motor B - Phase 2
Define MotB3          Port[7]      'Motor B - Phase 3
Define MotB4          Port[8]      'Motor B - Phase 4

'Definition der Variablen für die Schrittmotor-Ansteuerung

Define VarMF            2          'Motor Frequenze
define schritt       word[1]
define SolPos        word[2]
define IstPos        word[3]
define i              byte

#Init                   'Position der Motoren A und B auf 0 stellen
IstPos = 0
SolPos = IstPos


#Main
Bewegungen
goto main



#Hauptprogramm

Return

#Bewegungen              'Bewegungen der Motoren

'VORWÄRTS

'RUECKWÄRTS
'VORWAERTSRECHTS
'VORWAERTSLINKS
'RUECKWÄRTSRECHTS
'RUECKWÄRTSLINKS
'TURNRECHTS
'TURNLINKS





'-----------------------SCHRITTMOTOR FUNKTIONEN-------------------------------------
#VORWÄRTS
for i = 1 to 50
'schritt = schritt - 1
Looktab SchrittVor , i AND 3 , motorport
pause VarMF
next i
end

#RUECKWÄRTS
for i = 1 to 50
'schritt = schritt + 1
Looktab SchrittRück , i AND 3 , motorport
pause VarMF
'goto Main
next i
end

#RUECKWÄRTSRECHTS

for i = 1 to 50
'schritt = schritt - 1
Looktab SchrittM2RECHTS , i AND 3 , motorport
pause VarMF
next i
end
'goto Main

#VORWAERTSRECHTS

for i = 1 to 50
'schritt = schritt + 1
Looktab SchrittM2LINKS , i AND 3 , motorport
pause VarMF
'goto Main
next i
end

#VORWAERTSLINKS
for i = 1 to 50
'schritt = schritt + 1
Looktab SchrittM1LINKS , i AND 3 , motorport
pause VarMF
'goto Main
next i
end

#RUECKWÄRTSLINKS
for i = 1 to 50
'schritt = schritt - 1
Looktab SchrittM1RECHTS , i AND 3 , motorport
pause VarMF
'goto Main
next i
end

#TURNRECHTS
for i = 1 to 50
'schritt = schritt - 1
Looktab SchrittTURNR , i AND 3 , motorport
pause VarMF
'goto Main
next i
end

#TURNLINKS
for i = 1 to 50
'schritt = schritt + 1
Looktab SchrittTURNL , i AND 3 , motorport
pause VarMF
'goto Main
next i
end
'----------------------------------------------------------------------------

'----------------------------------------------------------------------------
                       'Schrittmotor-Tabelle für den Vollschritt

Table SchrittVOR          'Motor A und Motor B Vorwärts
68 136 17 34
Tabend

Table SchrittRück          'Motor A und Motor B Rückwärts
34 17 136 68
Tabend

Table SchrittM1RECHTS     'Motor A Vorwärts Motor B Stop
1 2 4 8                   'Stopbefehl für Motor B fehlt d.h. bitmuster ändern
Tabend


Table SchrittM1LINKS     'Motor A Rückwärts Motor B Stop
8 4 2 1                  'Stopbefehl für Motor B fehlt d.h. bitmuster ändern
Tabend

Table SchrittM2LINKS      'Motor A Stop Motor B Vorwärts
32 16 128 64              'Stopbefehl für Motor A fehlt d.h. bitmuster ändern
Tabend

Table SchrittM2Rechts      'Motor A Stop Motor B Rückwärts
64 128 16 32               'Stopbefehl für Motor A fehlt d.h. bitmuster ändern
Tabend

Table SchrittTURNR      'Motor A Vorwärts Motor B Rückwärts
66 129 24 36
Tabend

Table SchrittTURNL      'Motor B Vorwärts Motor A Rückwärts
36 24 129 66
Tabend
'----------------------------------------------------------------------------

jetzt soll das per seriale schnittstelle gesteuert werden.

ist das richtig? jetz allein von der weiterführung der befehle bzw umsetzung.

wenn ich alles soweit fertig hab wollte ich das dann miteinader verschmelzen lassen...

Code:
Define WertRS232      Byte[9]      'Empfangenes Zeichen (RS232)
Define TmpByte        Byte[10]     'Zwischenspeicher (Byte)
Define ASCII_F        70           'ASCII-Code "F"
Define ASCII_L        76           'ASCII-Code "L"
Define ASCII_R        82           'ASCII-Code "R"
Define ASCII_T        84           'ASCII-Code "T"
define SolPos        word[2]
define IstPos        word[3]

#RecRS232
  'Kommandos: FL: Vorwärts links über linkes Rad drehen
  '           FF: Vorwärts fahren gerade
  '           FR: Vorwärts rechts über rechtes Rad drehen
  '           RL: Rückwärts links über linkes Rad drehen
  '           RF: Rückwärts fahren gerade
  '           RR: Rückwärts rechts über rechtes Rad drehen
  '           TL: Drehung links über die Mittelachse
  '           TR: Drehung rechts über die Mittelachse
  'Prüfung auf neue Kommandos
  If Not RxD Then Return
  'Annahme erst bei Ist-Position = Soll-Position
  If IstPos <> SolPos Then Return
  Get WertRS232
  If WertRS232 = ASCII_F Then GoTo RecRS232F
  If WertRS232 = ASCII_R Then GoTo RecRS232R
  If WertRS232 = ASCII_T Then GoTo RecRS232T
  Return
  #RecRS232F
  'Vorwärts-Kommando empfangen
  Get WertRS232
  If WertRS232 = ASCII_L Then GoTo RecRS232FL
  If WertRS232 = ASCII_F Then GoTo RecRS232FF
  If WertRS232 = ASCII_R Then GoTo RecRS232FR
  Return

#RecRS232FL
  'Vorwärts nach Links
  
  Return

#RecRS232FF
  'Vorwärts gerade

  Return

#RecRS232FR
  'Vorwärts nach Rechts

  Return

#RecRS232R
  'Rückwärts-Kommando empfangen
  Get WertRS232

  Return

#RecRS232RL
  'Rückwärts nach Links

  Return

#RecRS232RF
  'Rückwärts gerade

  Return

#RecRS232RR
  'Rückwärts nach Rechts

  Return

#RecRS232T
  'Dreh-Kommando empfangen
  Get WertRS232
  If WertRS232 = ASCII_L Then GoTo RecRS232TL
  If WertRS232 = ASCII_R Then GoTo RecRS232TR
  Return

#RecRS232TL
  'Drehen nach Links

  Return

#RecRS232TR
  'Drehen nach Rechts

  Return
müsste ja dann nur noch z.b. hier :

#RecRS232TL
'Drehen nach Links

nurnoch den befehel machen das er zu TURNL geht. seh ich das richtig?