-
-
Schrittmotorsteuerung / Schritte auf LCD anzeigen
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
-
Erfahrener Benutzer
Fleißiges Mitglied
das ist doch nicht alles vom code.
meine glaskugel ist kaputt.
-
Erfahrener Benutzer
Roboter-Spezialist
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.
-
Erfahrener Benutzer
Roboter Experte
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
-
Erfahrener Benutzer
Roboter-Spezialist
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
-
Foren-Regeln
Lesezeichen