-
 
          
	
		
		
	
	
	
	
		
	
	
		
			
- 
	
	
		
		
			
				
				
				
					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
				Berechtigungen
			
			
				
	
		- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-  
Foren-Regeln
 
			 
		 
	 
 
  
 
  
 
Lesezeichen