Probiers mal prinzipiell damit, habs kurz umgeschrieben, muß man aber anpassen. Die Freuenz ist auch nicht linear da T = 1 / f ist. Kannst aber anders schreiben und es ist auch linear.
Code:
$RegFile = "m8def.dat" ' ATMEGA8L8
$Crystal = 3686400 ' 3,68MHz intern
' Port AVR: Stepperantrieb
' --------- ---------
'
' PD2 ---------> Enable
' PD3 ---------> Dir
' PD4 ---------> Clock
'
Stpk03Enable Alias PortD.2
Stpk03Dir Alias PortD.3
Stpk03Clock Alias PortD.4
Taster1 Alias PinD.6
Taster2 Alias PinD.7
DDRD = &B00011100
PortD = &B11000000
Dim i As Integer
Dim k As Integer
'1,8,64,256,1024
Config Timer0 = Timer , Prescale = 1024
Enable Timer0
On Timer0 DoStep
Enable Interrupts
Stpk03Enable = 1
Stpk03Dir = 1
i = 0
Do
Do
i = i + 1
k = i
WaitMs 50
Loop Until k = 255
WaitMs 5000
Do
i = i - 1
k = i
WaitMs 50
Loop Until i = 0
WaitMs 10000
Loop
DoStep:
If k = 0 Then
Stpk03Enable = 0
Else
Stpk03Enable = 1
End If
Timer0 = k
Stpk03Clock = Not Stpk03Clock
Return
Grüße Wolfgang
Lesezeichen