Hi,
hast du die "end sub" vergessen ?
Noch was
For A= 256 to 511
Du hast doch die PWM als 8 Bit deklariert.
Sollte also auch nur bis 255 gehen.
Warum zählst du die überhaupt hoch ?
Gruß
Christopher
hallo
hab mal wieder ein Problem rein Theoretisch müsste ich doch mit Declare Subine Schleife auf bauen können die klappt. Jedoch habe ich das Gefühl das irgendwie im Programm das next bei der Motorsteuerung stört und nicht nach den Befehlen geht in der Do-Schleife, sondern nach dem next was ich allerdings nicht möchte habe schon viel Probiert aber vielleicht habt ihr eine Idee !!!
hier der Code:
könnte man vielleicht die Pwm Modulation noch anders ausdrücken wie??Code:$regfile = "m8def.dat" $crystal = 7372800 $baud = 9600 $hwstack = 34 $framesize = 34 $swstack = 34 Dim A As Word Dim B As Word Config Portc = &B11111111 Config Adc = Single , Prescaler = Auto , Reference = Internal Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 Config Pinb.1 = Output Motor1_pwm Alias Portb.1 Config Pind.4 = Output Motor1_in1 Alias Portd.4 Config Pind.5 = Output Motor1_in2 Alias Portd.5 Declare Sub Fahr_v() Declare Sub Stop_v() Declare Sub Fahr_r() Start Adc Do B = Getadc(1) Print B If B > 200 Then Stop_v Else Fahr_v End If Loop End Fahr_v: Motor1_in1 = 1 Motor1_in2 = 0 For A = 255 To 511 Pwm1a = A Waitms 10 Next Stop_v: Motor1_in1 = 1 Motor1_in2 = 1 For A = 255 To 0 Pwm1a = A Waitms 10 Next Fahr_r: Motor1_in1 = 0 Motor1_in2 = 1 For A = 255 To 511 Pwm1a = A Waitms 10 Next
For A = 255 To 511
Pwm1a = A
Waitms 10
Next
gruß
patrick
Hi,
hast du die "end sub" vergessen ?
Noch was
For A= 256 to 511
Du hast doch die PWM als 8 Bit deklariert.
Sollte also auch nur bis 255 gehen.
Warum zählst du die überhaupt hoch ?
Gruß
Christopher
eigentlich will ich das nicht aber da es nicht gerade anders geht habe ich das so.
sonst macht mein motor komische geräusche läuft langsam an und dann steigt die Amperemeter auf ca. 1.2 Ampere hoch
gruß
patrick
Was soll das Hoch bzw. Runterzählen denn bewirken ?
Willst du damit einen Softanlauf machen ?
Gruß
Christopher
erstens das und zweitens erstmal so zum test das programm werde ich gleich noch weiter ausbauen.
so es klappt zum mindestens mal so:
Code:$regfile = "m8def.dat" $crystal = 7372800 $baud = 9600 $hwstack = 34 $framesize = 34 $swstack = 34 Declare Sub Fahr_v() Declare Sub Stop_v() Declare Sub Fahr_r() Dim A As Word Dim B As Word Config Portc = &B11111111 Config Adc = Single , Prescaler = Auto , Reference = Internal Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 Config Pinb.1 = Output Motor1_pwm Alias Portb.1 Config Pind.4 = Output Motor1_in1 Alias Portd.4 Config Pind.5 = Output Motor1_in2 Alias Portd.5 Start Adc Do B = Getadc(1) Print B If B >= 200 Then Stop_v Else Fahr_v End If Loop End Sub Fahr_v: Motor1_in1 = 1 Motor1_in2 = 0 For A = 255 To 255 Pwm1a = A Waitms 10 Next A End Sub Sub Stop_v: Motor1_in1 = 1 Motor1_in2 = 1 For A = 255 To 0 Pwm1a = A Waitms 10 Next End Sub
hallo
danke für die Hilfe chr-mt das andere klappt jetzt auch.
das es nur an dem sub ...... und an dem end sub hängt wenn man es vergisst naja passt schon.
gruß
patrick
Lesezeichen