- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Schrittmotorsteuerung / Schritte auf LCD anzeigen

  1. #1

    Schrittmotorsteuerung / Schritte auf LCD anzeigen

    Anzeige

    E-Bike
    Hallo Leute!

    Bin mit der Microcontrollerprogramierung noch ganz am Anfang.
    Ich habe mir eine Schrittmotorsteuerung L297/L297 aufgebaut.
    Diese wird mit einem Mega32 gesteuert.

    Habe mir mal ein kleines Programm zum austesten der Funktionen geschrieben. Funktioniert auch alles. Jetzt möchte ich mir gerne die Schritte des Schrittmotors auf einem LCD anzeigen lassen.

    Nur wo kann ich den Befehl LCD im Programm platzieren?
    Wenn ich Ihn in der FOR/NEXT Schleife schreibe wird mein Motor komischerweise langsamer..?
    Oder habe ich schon einen grundsätzlichen Fehler gemacht?

    Vielleicht kann mir einer ein paar Tipps geben..
    Hier mein Code:

    $regfile = "m32def.dat"
    $crystal = 8000000

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    Config Lcdbus = 4


    Config Porta = Output
    Porta.0 = 0 'Clock Schrittmotorsteuerung
    Porta.1 = 1 'Drehrichtungswechsel
    Porta.2 = 0 'Half/Full


    Dim I As Integer

    Do

    For I = 0 To 3999
    Toggle Porta.0 : Waitus 600
    Next
    Waitms 500
    Toggle Porta.1 'Drehrichtung wechseln
    Toggle Porta.2 'Half/Full umschalten

    Loop



    End
    Vielen Dank

    Gruß Matthias

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.01.2008
    Beiträge
    164
    das ist doch nicht alles vom code.
    meine glaskugel ist kaputt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Ich hab zwar noch nicht so viel erfahrung mit LCDs, aber wenn ich eins über vier Datenleitungen ohne BuisyMode ansteuere, dann dauert es vlt. eine Sekunde bis die Anzeige komplett ausgefüllt ist. Durch diese Trägheit/Verzögerung könnte unter Umständen dein langsam Werden zu Stande kommen. Eine Lösung dafür hab ich leider nicht. Müsstest ja in der Art Multitasking machen: Aufs LCD schreiben, während der Motortreiber seine Impulse bekommt.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    LCD braucht relativ viel Zeit glaubich...
    Ist aber ne schöne Übung für dich, um weiterzukommen! Ich nenne mal ein paar Stichpunkte für deine Recherche hier im Forum und im Bascom Handbuch:
    - Interrupt-Routine (ISR)
    - Sub-Routine
    - Hardware-Timer für den Clock-Pin

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Hallo Matthias,

    Ich hole mal ein wenig tiefer aus.

    Einen SM startet man nicht mit von 0 auf 100 ''full Speed'' , weil das kostet Höchgeschwindigkeit.

    Dazu benutzt man Rampen die man in Tabellen ablegen kann.

    Bascom LCD Ausgaben sind gewollt so langsam, damit auch das übelste LCD noch läuft.

    Umgehen könnte man die lahme Anzeige durch Angabe eines anderen Quarzes. (Statt 8 Mhz eben 1 MHz)
    Dann sollte man das aber bei Wait & Baud berücksichtigen.

    Warum ersetzt Du Deine Waitus 600 = 0,6 mSek nicht durch die LCD Ausgabe ?

    Das waren ein paar Ansätze zum Nachdenken.

    lg gento

Berechtigungen

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

LiFePO4 Speicher Test