Hallo zusammen,
noch mal Dank an Searcher für die Hinweise!
Ich habe das > und < eingefügt und siehe da: Jetzt funktioniert es endlich wie es soll: Der Schritti dreht - mit gedrosseltem Tempo los, kann schneller durch den DE gesteuert werden und bleibt nun auhc bei der jeweiligen Max. und Min.- Geschwindigkeit stehen. Super!
Etwas Feintuning an den Werten für den Timer und dem Wert asus dem Drehencoder, und jetzt passt alles.
Ich werde nun noch das Enable für gesteuerten Stop und das Dir für eine Hin und Her-Bewegung implementieren. Wahrscheinlich brauche ich dann noch mal Hilfe, aber ich schraube erst mal ein wenig herum, will ja auch was lernen...
Aktueller Code:
Code:$regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 9600 ' BASCOM-Programm ' Stefan Hoffmann 2009 ' Drehimpulsgeber/Encoder mit ENCODER-Befehl ' ' In: Drehimpulsgeber an d.0 und d.1 sowie Taster ' Testprogramm für A3967 Platine mit Dir Step und Enable $regfile = "attiny2313.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 8000000 'Interner Osz. 8 MHz $baud = 9600 Config Timer0 = Timer , Prescale = 1024 'Timer1 Deklarationen für den Takt des Steppers Enable Timer0 Dim Timer0_reload As Word Portd.4 = 1 'Pullup Widerstand ein für Enable - ****Enable =0 bedeutet Motor On!!!! **** Enable Interrupts On Timer0 Isr_timer0 'Deklaration der Timerroutine ' Inputs: Drehimpulsgeber an d.0 und d.1 sowie Taster an d.3 '-----Deklarationen fuer Drehimpulsgeber: Config Pind.0 = Input Encoder_a Alias Pind.0 'Encoder Signal B an Pin 2 Config Pind.1 = Input Encoder_b Alias Pind.1 'Encoder Signal A an Pin 3 Config Pind.3 = Input Taster1 Alias Pind.3 'Taster Pind.0 = 1 'Pullups für den Drehencoder Pind.1 = 1 Pind.3 = 1 'LED-Outputs stellvertretend für Step, Dir, Enable ' In der endgültigen Hardware liegen: Step/Takt auf PD.2 / Taster auf PD.3 / Enable auf PD4 / Richtung auf PD5 / Config Portd.2 = Output Portd.2 = 0 'das ist Step/Takt - Pin 6 - alles mit Pulldown + LEd_gelb Config Portd.5 = Output Portd.5 = 0 ' Pin 9 - Dir - Richtungssignal Config Portd.4 = Output Portd.4 = 0 ' Pin 16 - Enable - generelles Ein-Ausschaltsignal Motor_step Alias Portd.2 Led_gruen Alias Portd.5 Chip_enable Alias Portd.4 Dim Wert As Word Wert = 2 'willkürlich gewählter Startwert Dim Zustand As Byte '***********Hauptschleife:********** Do Chip_enable = 0 'Enable ein Led_gruen = 1 'Dir Zustand = Encoder(pind.0 , Pind.1 , Linksroutine , Rechtsroutine , 0) Loop End Isr_timer0: Timer0_reload = 4 'Vorgabe für 38 / sec Timer0 = Timer0_reload + Wert Toggle Motor_step '= Stepper_takt Return Linksroutine: Decr Wert If Wert <= 1 Then Wert = 1 End If Return Rechtsroutine: Incr Wert If Wert >= 230 Then Wert = 230 End If Return







Zitieren

Lesezeichen