Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zeitschleife für parallel port-programmierung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
lukas B.



Anmeldungsdatum: 04.03.2008
Beiträge: 3
Wohnort: Leipzig

BeitragVerfasst am: 04.03.2008, 18:01    Titel: Zeitschleife für parallel port-programmierung Antworten mit Zitat

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. mit dem Kopf durch die Mauer wollen 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 04.03.2008, 23:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lukas B.



Anmeldungsdatum: 04.03.2008
Beiträge: 3
Wohnort: Leipzig

BeitragVerfasst am: 05.03.2008, 18:48    Titel: Antworten mit Zitat

Hast recht...es handelt sich um millisekunden bei der Lenkung und um vielleicht 3 sekunden beim Vorwärsfahren...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 06.03.2008, 11:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 06.03.2008, 23:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lukas B.



Anmeldungsdatum: 04.03.2008
Beiträge: 3
Wohnort: Leipzig

BeitragVerfasst am: 07.04.2008, 15:35    Titel: Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 21.04.2008, 09:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 21.04.2008, 12:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz