Zitat 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