Hallo

Ich habe für meinen Mega 8 folgendes Programm geschrieben

Code:
$regfile = "m8def.dat"                                      'ATmega8
$crystal = 3686411                                          'Quarz: 3686411 Hz

Declare Sub Tasterlinks
Declare Sub Tasterrechts
Declare Sub Anhalten

Ddrd = &B11110000                                           'Pin PD4 bis PD7 als Ausgänge
Ddrb = &B00000000

Portd.2 = 1                                                 'Taser  1
Portd.3 = 1                                                 'Taster 2
Portb.0 = 1                                                 'Taster 3




Do
  Portd.4 = 1                                               'Motoren drehen in gleiche Richtung
  Portd.5 = 0
  Portd.6 = 1
  Portd.7 = 0

Debounce Pind.2 , 0 , Tasterlinks , Sub                     'Taster 1
Sub Tasterlinks

     Portd.4 = 0
     Portd.6 = 0

     Portd.5 = 1
     Portd.7 = 1
     Waitms 1500

     Portd.4 = 1
     Portd.7 = 1

     Portd.6 = 0
     Portd.5 = 0
     Waitms 2000

End Sub

Debounce Pind.3 , 0 , Tasterrechts , Sub                     'Taster 2
Sub Tasterrechts

     Portd.4 = 0
     Portd.6 = 0

     Portd.5 = 1
     Portd.7 = 1
     Waitms 1500

     Portd.4 = 0
     Portd.7 = 0

     Portd.6 = 1
     Portd.5 = 1
     Waitms 2000

End Sub


Debounce Pinb.0 , 0 , Anhalten , Sub                     'Taster 3
Sub Anhalten

     Portd.4 = 0
     Portd.5 = 0
     Portd.6 = 0
     Portd.7 = 0
     Waitms 20000

End Sub

Loop
End
Bei den Tastern handelt es sich um Schließer. Sie liegen jeweils zwischen dem Mega8 und Masse

Wenn ich das Programm aber auf meinen Mega8 überspiele benimmt er sich ziemlich komisch, ich habe ihn noch nicht an die Motoren angeschlossen sondern nur mit dem Messgerät die Spannung an den Outputs für die Motoren abgegriffen.
Der AVR schaltet hier ständig zwischen 0V und 12V (Maximalspannung) hin und her. Ich schätze mal er geht den Befehler für die Taster nach, die aber nicht angeschlossen sind und er das deswegen gar nicht sollte...was ist hier denn falsch?