Foooob
01.06.2005, 20:22
Hallo
Ich habe für meinen Mega 8 folgendes Programm geschrieben
$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? :-s
Ich habe für meinen Mega 8 folgendes Programm geschrieben
$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? :-s