- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 41

Thema: Bascom: Schrittmotorsteuerung mit Drehencoder?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Benutzer Stammmitglied
    Registriert seit
    02.04.2009
    Beiträge
    78
    Ok, ich versuch's mal.


    Code:
      ' Testprogramm  für A3967 Platine mit Dir Step und Enable
    
    $regfile = "attiny2313.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000                                          'Quarzfrequenz
    $baud = 9600
    
    
    Config Timer1 = Timer , Prescale = 1
    Enable Timer1
    Timsk.toie1 = 1
    Dim Timer1_reload As Word
    Portd.4 = 1                                                  ' Pullup Widerstand ein   für Enable - ****Enable =0 bedeutet Motor On!!!!  ****
    Enable Interrupts
    
                    ' 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
    
    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 Pin 6   - alles mit Pulldown   -  steht für Step/Takt
    Config Portd.5 = Output 
        Portd.5 = 0               ' Pin 9  - der hier steht für Dir
    Config Portb.4 = Output 
        Portb.4 = 0                       ' Pin 16   -  diese Led steht für Enable
    
    Led_gelb Alias Portd.2
    Led_gruen Alias Portd.5
    Led_rot Alias Portb.4
    
    
    On Timer1 Isr_timer1        'Deklaration der Timerroutine
                    
        
    Dim Wert As Word
    Wert = 100                          'willkürlich gewählter Startwert
    Dim Zustand As Byte
    
           '***********Hauptschleife:**********
    Do
    
    Zustand = Encoder(Pind.0 , Pind.1 , Linksroutine , Rechtsroutine , 0)
    
       If Wert > 100 Then Led_rot = 1
    
       If Wert < 100 Then Led_gruen = 1
    
    Loop
    
    End
    
    
    Isr_timer1:
       Timer1_reload = 45536                                    'Vorgabe für 400 / sec
       Timer1 = Timer1_reload
       Toggle Led_gelb        '= Stepper_takt
    Return
    
    
    Linksroutine:
    Decr Wert
    Return
    
    Rechtsroutine:
    Incr Wert
    Return
    So, und beim Starten dieses Codes leuchtet zunächst die gelbe Led (ist klar, Timer1), und beim Drehen je eine Raste leuchtet grün und in die andere rot, gehen aber nicht wieder aus. Dies jeweils egal mit Encoder mit 100nF gegen GND oder ohne und ebenso mit dem Pollin-Drehencoder ohne Kondensatoren, der hier schon mehrfach angesprochen wurde und der mehr oder weniger Ärger macht.
    Ich habe an der Encoder-Routine mal hinten die 1 auf 0 geändert, weil ich ja das Prog ja weiter laufen lassen will. Mit 1 stoppt es hier wohl.

    Wie bekomme ich es hin dass rot und grün wieder ausgehen?
    Uind eben das Grundproblem - wie bekomme ich schnelleren/langsameren Takt an D2/Led_Gelb aufgrund Links/Rechtsdrehung hin?

    Vielen Dank für Eure Anregungen!
    Geändert von MrMiffy08 (16.10.2012 um 22:19 Uhr) Grund: paar Fehlerchen

Ähnliche Themen

  1. Schrittmotorsteuerung LB1845 und atmega48 in BASCOM
    Von chris155 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 09.05.2010, 18:41
  2. Wie Drehencoder anschließen ?
    Von Blamaster im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 07.09.2009, 19:01
  3. Menüsteuerung mit Drehencoder ?
    Von Blamaster im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 25
    Letzter Beitrag: 30.06.2009, 22:34
  4. Drehencoder auswerten
    Von MartinFunk im Forum C - Programmierung (GCC u.a.)
    Antworten: 11
    Letzter Beitrag: 16.05.2007, 16:05
  5. Drehencoder Panasonic
    Von Mr-400-Volt im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 04.02.2007, 20:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests