Hallo,
ich habe mal selbst versucht Schrittmotoren über Timer zu steuern.
Code:
'Testprogramm für 2 Schrittmotoren über Timer
$crystal = 8000000 'Quarzfrequenz
Declare Sub Ledein
Declare Sub Ledaus
Const Writepowerport_adr = &H72 'I2C Adr PCF 2
Const Readpowerport_adr = &H73 'I2C Adr PCF 2
Dim I2cdaten As Byte 'Datenbyte aus PCF8574
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
I2cinit
'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
' Bei Board 1.1 bitte auskommentieren oder löschen
I2cstart
I2cwbyte &H74 'Schreibbefehl an PCF3 schicken
' Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
I2cwbyte &B00000010 'Datenbyte an PCF3
I2cstop
'*********
Config Pind.6 = Output 'Schrittmotoren Ein/Aus
Config Pinc.5 = Output 'Schrittmotor Links Richtung
Config Pinc.3 = Output 'Schrittmotor Links Step
Config Pinc.4 = Output 'Schrittmotor Rechts Richtung
Config Pinc.2 = Output 'Schrittmotor Rechts Step
Dim X As Word
Dim Y As Word
Dim Verteilung As Byte
Verteilung = 50 'Anfangseinstellung beide Motoren mit 50%
Portd.6 = 1 'Beide Schrittmotoren einschalten
'-------------------------------------------------------------------------------
On Timer0 Ontimer0
Config Timer0 = Timer , Prescale = 1024
Enable Timer0
On Timer2 Ontimer2
Config Timer2 = Timer , Prescale = 1024
Enable Timer2
Enable Interrupts
Do
Input Verteilung
X = 250 * Verteilung
X = X / 100
Y = 250 - X
Print X ; "--" ; Y
Loop
End
'-------------------------------------------------------------------------------
Ontimer0:
Timer0 = X
Toggle Portc.2
Return
Ontimer2:
Timer2 = Y
Toggle Portc.3
Return
Meine Frage ist nun ob man das so machen kann??
mfg
Tomkeule
Lesezeichen