Hi Murdoc
ich habe mal bei einem ähnlichen Problem in das Programm an mehrere Stellen Anzeigen der LEDs eingebaut, einfach um zu sehen wann und ob wirklich ein Reset erfolgt. Wobei ich auch glaube, dass es ein ungewollter Reset ist.
Also z.B. so:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
Config Portb.0 = Output
Led_gruen Alias Portb.0 'grüne LED
Config Portb.1 = Output
Led_rot Alias Portb.1 'rote LED
Config Portc.2 = Output
Mo1_1 Alias Portc.2
Config Portc.3 = Output
Mo1_2 Alias Portc.3
Config Portc.4 = Output
Mo1_3 Alias Portc.4
Config Portc.5 = Output
Mo1_4 Alias Portc.5
Config Pind.4 = Output 'OC1B, PWM-Ausgang
Config Pind.5 = Output 'OC1A, PWM-Ausgang
Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Pwm1a = 0
Pwm1b = 0
Dim I As Integer
Led_gruen=1
wait 1
Led_gruen =0
Do
I = 0
Mo1_1 = 0
Mo1_2 = 1
Mo1_3 = 0
Mo1_4 = 1
Do
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 500
Led_rot =1
wait 1
led_rot =0
Wait 10
Do
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 10
Pwm1b = 0
Led_rot=1
wait 3
Led_rot=0
Wait 10
Loop
und dann würde ich auch mal versuchsweise mit Pwm1b nicht ganz nach oben gehen, sondern nur so weit bis der Motor läuft und gucken was bei niedriger Leistung passiert.
Grüsse
Christian
Lesezeichen