
Zitat von
uwegw
Hast du den Controller schon mal gefragt, was ihn resettet hat? Das verrät er dir im MCUCSR-Register.
Wie? (einfache Erklärung währ gut aber mir reicht auch wenn du mir nen Link oder ein paar Google-Stichworte gibst)
Ich werd wohl nicht drum rum kommen die ganze Sache Stück für Stück auseinander zu nehmen und zu versuchen den Fehler zu finden.
Mein Motoren-Test-Code (der is eigentlich so einfach das ich nicht glauben kann das es daran liegt):
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
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 '1a wird nicht benutzt
Pwm1b = 0 '1b ist auf beide Motortreiber geschaltet
Dim I As Integer
'Hauptprogramm
Do
Led_gruen = 0
Led_rot = 1
Wait 1
Led_gruen = 1
Led_rot = 0
Wait 1
I = 0
Mo1_1 = 1 'Motortreiber 1
Mo1_2 = 0 'Motortreiber 1
Mo1_3 = 0 'Motortreiber 2
Mo1_4 = 1 'Motortreiber 2
'beschleunigen
Do
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 500
Wait 10
'abbremsen
Do
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 10
Pwm1a = 0
Pwm1b = 0
Wait 7
Loop
Lesezeichen