Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi µ Timer (https://www.delphipraxis.net/44316-%B5-timer.html)

Logh 17. Apr 2005 17:54


µ Timer
 
hi,

folgendes problem:

es geht um die Programmierung der seriellen Schnittstelle.
Wie kann man im µs Bereich einen Takt raus lassen, d.h. einen Takt x µs und danach ein Takt y µs. Bei der umschaltung von x auf y darf keine große Zeit verloren gehen (>2µs).
Wie könnte man dies realisieren (µTimer mit ISR).
Bitte um hilfe.


Logh

Dax 17. Apr 2005 17:59

Re: µ Timer
 
Eventuell mit MSDN-Library durchsuchenQueryPerformanceCounter

Sharky 17. Apr 2005 18:07

Re: µ Timer
 
Hai Logh,

ersteinmal : "Herzlich Willkommen in der Delphi-PRAXIS".

Mal unabhängig von Delphi. Bist Du sicher das die serielle Schnisstelle mit so einem Tak klar kommte? :gruebel:

mr47 17. Apr 2005 18:18

Re: µ Timer
 
µ ist doch = Mikro also 1µs = 1 Millionstel Sekunde oder? Das geht afaik mit der Seriellen nicht.

Logh 18. Apr 2005 12:47

Re: µ Timer
 
Danke für den Herzlichen Empfang. (leider weiß ich nicht mich mit smilies auszudrücken)

ja µ heißt 1 millionstel sek.
die serielle Schinstelle kann, soweit ich das weis 19200 bit\s max. übertragen, d.h. 1 bit wird in 0,0000520833333 ~ 52µs übertragen.
Bei 9600 dauert es 1/9600 = 0.000104166667 ~ 104µs.
Also die serielle Schnittstelle kommt da schon mit.

runger 18. Apr 2005 13:43

Re: µ Timer
 
Hallo,

wir haben hier ein ähnliches Problem schonmal gelöst.
Abhängig davon was du mit deinem Signal machen willst, könntest du auch die Handshake-Leitungen benutzen.
Mit Asynch-Pro kann man diese Ausgänge einfach setzen oder rücksetzen.
Das geht relativ flott, allerdings weiss ich nicht wie flott, ich bin aber sicher, dass man damit die us Grenze erreichen kann.
Der Takt der mit Txd erreichbar ist kann nur einer der Standardbaudrates entsprechen, ist also für eine solche Aufgabe recht ungeeignet, es sei denn du benötigst eine entsprechende Frequenz.
Was willst du damit eigentlich erreichen? Taktgenerator oder ähnliches?

Rainer

glkgereon 18. Apr 2005 13:45

Re: µ Timer
 
Zitat:

Zitat von Logh
Danke für den Herzlichen Empfang. (leider weiß ich nicht mich mit smilies auszudrücken)

ja µ heißt 1 millionstel sek.
die serielle Schinstelle kann, soweit ich das weis 19200 bit\s max. übertragen, d.h. 1 bit wird in 0,0000520833333 ~ 52µs übertragen.
Bei 9600 dauert es 1/9600 = 0.000104166667 ~ 104µs.
Also die serielle Schnittstelle kommt da schon mit.

afaik werden immer mehrere bits auf eimal übertragen (16?)
daher braucht er 16(?)mal länger

Logh 18. Apr 2005 13:59

Re: µ Timer
 
ja,

er braucht 16 mal länger aber beim takt setzt man ein bit oder nicht.

Ich brauche das, damit ich mit einer bestimmten IC variante kommunizieren kann.

Folgendes liegt vor:

Als Schul projekt habe ich es mir zur Aufgabe gemacht, mit einem IButton ein Sicherheits System zu erstellen. Ein Ibutton ist ein IC, welches ein Identifikationsnummer in sich trägt, damit kann man Systeme vor unbefugten schützen.
Der Ibutton(sieht aus wie eine Knopfzelle) wird in eine auslese Vorrichtung gelegt- und nun kommt der Rechner ins Spiel- dort wird mit einem bestimmten Protokoll mit dem IButton kommuniziert. Der IButton sendet seine ID an den PC, der überprüft ob die ID richtig ist und schaltet z.B. den Rechner an.
Die Kommunikation:
Um mit dem IButton zu kommunizieren, muss eine Leitung, an die der IButton angeschlossen ist, auf High oder Low gelegt werden, und zwar in µs-Bereich, z.B. Leitung = 0 für 50 µs und danach Leitung = 1 für 100µs, interpretiert der IButton als ein empfangenes Bit. Nun muss man diese Signal folgen im µ-Bereich erzeugen. Die Übertragung ist seriell über eine Leitung (Es kommuniziert über die Versorgung).

So viel dazu.

mr47 18. Apr 2005 14:24

Re: µ Timer
 
Zitat:

Zitat von Logh
ja,

er braucht 16 mal länger aber beim takt setzt man ein bit oder nicht.

Er meint damit, dass deine Rechnung nicht stimmt, dass man für ein Bit 0,0000520833333 ~ 52µs braucht, weil 16 bit auf einmal übertragen werden. D.h. dass die Zeit in der ein Bit versendet wird 16x länger ist, weil ja noch 15 andere versendet werden. D.h. ~52*16 = ~832µs (oder denk ich jetzt auch falsch :gruebel: )

mfg

edit1+2: Schreibfehler

dizzy 18. Apr 2005 14:32

Re: µ Timer
 
Mal am Rande: Selbst wenn es die Serielle schaffen kann, so hat man aber noch immer keine Möglichkeit derart kurze Intervalle am PC vorzugeben, oder irre ich da? Sämtliche Timer bewegen sich doch im ms-Bereich bzw. geben sie Ticks wieder (dessen Geschwindigkeit dann wiederum von der CPU abhängt). Und selbst wenn man auf Basis eines Timers auf Ticks arbeitet, so werden etwaige Berechungen und Ein-/Ausgabe-Befehle eine Verarbeitungszeit hervorrufen, die a) in ihrer Dauer unter Windows nicht abschätzbar ist, und b) eventuell ohnehin zu lang wäre.

Oder bin ich grad völlig auf dem falschen Dampfer? (Will ich nicht aussließen :))


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz