Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Assembler für Byteport und schrittmotoren Kategorie: Programmierung ASM (von Jürgen - 21.12.2010 19:05)
 Als Antwort auf Assembler für Byteport und schrittmotoren von Rene Jahn - 20.12.2010 19:27
Jürgen nutzt:  CC1-M-Unit V1.1, Open-Mini
Hallo Rene
Schönes Programm! Wenn die Schrittmotoren zappeln, so muß das kein Fehler im Programm sein. Vor länderer Zeit hab ich das auch mal mit Assembler probiert, da kam nur ein pfeifen bei raus. Das Programm war einfach zu schnell. Ich hab diese Jahr mal einen alten Scanner zerlegt. Der Motor fing schon bei Basic an zu ruckeln und zu stottern. Daraufhin hab ich mal versucht möglichtst dicht an die Leistungsgrenze zu kommen. Mit einer Zählschleife statt Pause hat es dann geklappt. Ab einer gewissen Geschwindigkeit sind die Impulse so kurz und somit auch die Energiemenge zu gering um den Motor weiterzudrehen. Mit einer höheren Spannung am Motor kann man noch etwas herauskitzeln - dann aber bitte im Stillstand den Motorstrom abschalten, sonst kann man Elektrizität riechen .
Anbei mal mein Testprogramm (hatte ich mit dem Open Basic Compiler umgesetzt)

Auch noch ein schönen Fest an alle Jürgen



'*************************************************************
' C-CONTROL/BASIC                             HALBVOLL2010.BAS
'
' AUFGABE:
' SCHRITTMOTOR MIT MAXIMALER GESCHWINGIGKEIT ZU BETREIBEN
' VOLL- UND HALBSCHRITTBETRIEB
'*************************************************************
' DIESES PROGRAMM ARBEITET AM LCD-STECKER DER CC2004V1 PLATINE
' UND DER STEP0104 SCHRITTMOTORPLATINE ZUSAMMEN.
'*************************************************************
' CCONTROL / MOTOR MITSUMI M42SP-7 (48 SCHRITTE 10 OHM JE WICKLUNG)
' PORT-5     GELB
' PORT-6     ORANGE
'
' PORT-7     BRAUN
' PORT-8     SCHWARZ
' MOTOR DREHT LINKS HERUM
' MOTORSTROM BEI 5V UND 180PPS = 180mA (LEERES SUB WARTEN)
' MOTORSTROM BEI 5V UND ???PPS = 400mA
'*************************************************************
' --- Definitionen -------------------------------------------
OPTION CCBASIC
DEFINE AUSGAENGE BYTEPORT[1]
DEFINE ENABLE DA[1]
DEFINE SPEED AD[1]
DEFINE HALB PORT[13]
DEFINE VOLL PORT[14]
DEFINE A BYTE
' --- Hauptprogramm ------------------------------------------
' DER MOTOR IST AN PORT 5 BIS 8 ANGESCHLOSSEN
' ZUGLEICH WERDEN LEUCHTDIODEN AN PORT 1 BIS 4 ANGESTEUERT
' PORT 1=5, 2=6, 3=7, 4=8
#START
IF NOT HALB AND NOT VOLL THEN GOTO ENDE
'
ENABLE = 255
'*** VOLLSCHRITT RECHTS HERUM ********************************
#LOOPVOLL
AUSGAENGE = &B01010101
GOSUB WARTEN
AUSGAENGE = &B10011001
GOSUB WARTEN
AUSGAENGE = &B10101010
GOSUB WARTEN
AUSGAENGE = &B01100110
GOSUB WARTEN
IF VOLL THEN GOTO LOOPVOLL
'*** HALBSCHRITT LINKS HERUM *********************************
#LOOPHALB
AUSGAENGE = &B00010001
GOSUB WARTEN
AUSGAENGE = &B01010101
GOSUB WARTEN
AUSGAENGE = &B01000100
GOSUB WARTEN
AUSGAENGE = &B01100110
GOSUB WARTEN
AUSGAENGE = &B00100010
GOSUB WARTEN
AUSGAENGE = &B10101010
GOSUB WARTEN
AUSGAENGE = &B10001000
GOSUB WARTEN
AUSGAENGE = &B10011001
GOSUB WARTEN
IF HALB THEN GOTO LOOPHALB
'
GOTO START
'
#ENDE
ENABLE = 0
AUSGAENGE = 0
END
'
'
#WARTEN
'*** MINDESTIMPULSLAENGE *************************************
FOR A = 0 TO 2
NEXT
ENABLE = 0 'STROM ABSCHALTEN

'*** PAUSENZEIT **********************************************
FOR A = 0 TO SPEED                          'SPEED = AD-PORT 1
NEXT
A = 0
ENABLE = 255                         'STROM WIEDER EINSCHALTEN
RETURN

 Antwort schreiben

Bisherige Antworten:

Re: Assembler für Byteport und schrittmotoren (von Rene Jahn - 27.12.2010 20:09)