Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
lukas B.
Anmeldungsdatum: 04.03.2008 Beiträge: 3 Wohnort: Leipzig
|
Verfasst am: 04.03.2008, 19:01 Titel: Zeitschleife für parallel port-programmierung |
|
|
Hi,
in einem schulprojekt will ich ein ferngesteuertes auto digitalisieren...das heißt ich will es über einen parallelport ansteuern. ich muss die doku für das projekt machen und muss nun dringend wissen, wie eine zeitschleife aussieht. ich brauche nur die ersten 4 pins. 2 für lenkung und 2 für bewegung. die bewegung wird sicherlich dauerhaft sein, wobei die lenkung weniger gebraucht wird.
kann mir jemand helfen?
links zur weiterhilfe wären von vorteil...
danke schon im vorraus...Lukas B. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skilltronic
![](images/avatars/671648254416b059946b46.jpg)
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 05.03.2008, 00:18 Titel: |
|
|
Hallo
Wie gross sind denn die Intervalle, die du mit der Zeitschleife steuern oder messen willst? Tage, Minuten, Millisekunden? Je nachdem gibt es nämlich recht unterschiedliche Methoden für die Zeitmessung.
Ja genauer du das Projekt und die Probleme in deiner Frage beschreibst, um so genauer und besser können wir dir antworten. In diesem Sinne - vielleicht beschreibst du nocheinmal etwas genauer, was du wissen willst.
Gruß & Willkommen im Forum
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
lukas B.
Anmeldungsdatum: 04.03.2008 Beiträge: 3 Wohnort: Leipzig
|
Verfasst am: 05.03.2008, 19:48 Titel: |
|
|
Hast recht...es handelt sich um millisekunden bei der Lenkung und um vielleicht 3 sekunden beim Vorwärsfahren... |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 06.03.2008, 12:19 Titel: |
|
|
1. kommt es drauf an, mit welchem Betriebssystem Du das steuern willst. Alle Windows-Versionen der NT-Reihe (NT, 2k, XP, Vista) lassen eine Ansteuerung des parallelen Ports nur über Treiber zu. Um den Port direkt anzusteuern, brauchst Du ein DOS oder DOS-gestütztes Windows (Win95/98/ME).
2. Windows ist kein Real-Time-System, weil das System im Hintergrund noch einen Haufen anderer Aufgaben erledigt. D. h. zeitkritische Programmierungen sind kaum möglich. Im Bereich von Millisekunden kann es da schon zu Ungenauigkeiten kommen.
3. Im Internet gibt es viele Seiten mit der Pinbelegenung des LPT-Ports. Damit solltest Du Dich auseinandersetzen. Wichtig ist auch, daß der Port im EEP/ECP-Modus geschaltet ist, dann ist es am Einfachsten. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skilltronic
![](images/avatars/671648254416b059946b46.jpg)
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 07.03.2008, 00:24 Titel: |
|
|
Hallo
Warteschleifen waren schon mehrfach Thema hier (Forensuche benutzen), ich habe aber nochmal was zusammengestellt:
Code: | '----------------------------------------------------------------------------
'Methode 1: Erzeugt Wartezeiten mit einer Genauigkeit von ca. 55ms.
'----------------------------------------------------------------------------
wartezeit = .5 'Wartezeit in Sekunden
startzeit = TIMER 'Startzeit setzen
DO 'Beginn der Warteschleife
dt = TIMER - startzeit 'Differenz zwischen aktueller und Startzeit
IF dt < 0 THEN dt = dt + 86400 'Hier wird der Mitternachtsfehler abgefangen
LOOP WHILE dt < wartezeit 'Schleife laeuft, bis Wartezeit erreicht ist
'----------------------------------------------------------------------------
'Methode 2: Erzeugt unter echtem DOS Wartezeiten mit einer Genauigkeit von
' einer Millisekunde und besser, unter Windows koennen groessere
' Abweichungen auftreten.
'----------------------------------------------------------------------------
tmerk = TIMER 'Stand von TIMER merken
DO: LOOP WHILE TIMER = tmerk 'Warten, bis TIMER umspringt
tstart = TIMER 'Startzeit merken
FOR schleife& = 1 TO 20000000: NEXT 'Die Schleife 20 Mio. mal durchlaufen
tende = TIMER 'Endzeit merken
dt = tende - tstart 'Differenz zwischen Start- und Endzeit
millisekunde& = 20000 / dt 'Schleifenwert fuer eine ms berechnen
'...
wartezeit% = 20 'Wartezeit in Millisekunden
sw& = wartezeit% * millisekunde& 'Schleifenwert fuer 20ms berechnen
FOR schleife& = 1 TO sw&: NEXT 'Warteschleife
'----------------------------------------------------------------------------
'Methode 3: Funktioniert nur unter echtem DOS richtig. Dann erreicht man
' man aber eine sehr hohe Genauigkeit. Auf einem P3-500 z.B.,
' laesst sich der Schleifenwert auf rund 1/4 Mikrosekunde (!)
' genau bestimmen. Arbeitet mit den Registern des programmierbaren
' Intervalltimers (PIT).
'----------------------------------------------------------------------------
millisekunde& = 100 'Beliebiger Startwert
DO 'Beginn der Messschleife
OUT 67, 52 'Timer 0, Mode 2, Low- und Highbyte
OUT 64, 0 'Lowbyte auf 0 setzen
OUT 64, 0 'Highbyte auf 0 setzen
FOR schleife& = 1 TO millisekunde&: NEXT 'Warteschleife
OUT 67, 4 'Stand von Timer 0 einfrieren
low% = INP(64) 'Lowbyte auslesen
high% = INP(64) 'Higbyte auslesen
takte& = 65536 - (low% + high% * 256&) 'Der Timer zaehlt von 65535 runter
zeit& = takte& / 1.193046 '2^32 Takte / Stunde = 1193046 Hz
faktor = 1000 / zeit& 'Abweichung berechnen
millisekunde& = millisekunde& * faktor 'Schleifenwert korrigieren
LOOP UNTIL faktor = 1 'Warten, bis Korrekturwert gleich 1
'...
wartezeit = .25 'Wartezeit in Millisekunden
sw& = wartezeit * millisekunde& 'Schleifenwert fuer 250µs
berechnen
FOR schleife& = 1 TO sw&: NEXT 'Warteschleife |
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
lukas B.
Anmeldungsdatum: 04.03.2008 Beiträge: 3 Wohnort: Leipzig
|
Verfasst am: 07.04.2008, 16:35 Titel: |
|
|
also jez liegt ein zweites problem vor...undzwar will ich mich informieren welches TTL teil ich benötige...für den praktischen teil ham wir schon das auto fertig aber ich brauche noch eine verbindung zum parallelport...dazu muss ich ja mit den TTLs arbeiten...ich bräuchte eine komktete nummer des teils sagt "Conrad"...ich muss auf ca. 5 Volt um das auto zum fahren zu bringen...könnt ihr mir bitte helfen...??? ![peinlich](images/smiles/icon_drop.gif) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.04.2008, 10:53 Titel: |
|
|
Das kommt ja darauf an, welche Funktion das Teil erfüllen soll. Als Bustreiber eignen sich z. B. 74xx240 - 74xx245. Aber man sollte unbedingt Opto-Koppler einsetzen, um den LPT-Port vor Überspannung zu schützen. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skilltronic
![](images/avatars/671648254416b059946b46.jpg)
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 21.04.2008, 13:47 Titel: |
|
|
Hallo
Wie wäre es denn mit ein paar Infos dazu, wie dieses Auto funktioniert, welche Funktionen wie gesteuert werden sollen. Oder was das mit dem TTL zu bedeuten hat. Weil der Druckerport mit TTL-Pegeln arbeitet oder funktioniert die Elektronik am Auto damit? Was heißt "ich muss auf ca. 5 Volt um das auto zum fahren zu bringen". Sind damit die Steuersignale gemeint, oder die Versorgungsspannung des Fahrmotors?
Wie soll man dir eine konkrete Frage zu irgendwelchen Bauteilen die du brauchen könntest beantworten, wenn man nicht mehr über die Sache weiß, als dass du irgendwie irgendein Auto über die parallele Schnittstelle steuern willst?
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|