![]() |
Re: µ Timer
genau das mein ich.
es stimmt nicht das man bei einer angabe 9600b/sek ein bit in 1/9600s übertragen kann sondern lediglich 16/16*9600s. macht rechnerich keinen unterschied, doch für den takt sehr wohl... |
Re: µ Timer
Bei 832µs sind wir dann schon fast wieder bei 1ms. Und dann bringst ja nicht mehr :gruebel: .
|
Re: µ Timer
Ich dachte immer die 16 Bit werden gleichzeitig gesendet. :gruebel:
MfG freak |
Re: µ Timer
ja eben!
darum gehts ja...der takt is dann nämlich langsamer als wenn er sie einzeln senden würde |
Re: µ Timer
Zitat:
mfg |
Re: µ Timer
Das sehe ich nicht ein! Schickst du mir bitte genügend Gummibärchen zum Testen? :mrgreen:
Ne, Spaß bei Seite, ich habs verstanden, danke. :zwinker: MfG freak |
Re: µ Timer
[ot] blödes beispiel! ich hab hunger :( [/ot]
aber ganz abgesehen davon: kann man mit windows auf ne ms genau takten? |
Re: µ Timer
Zitat:
mfg |
Re: µ Timer
wenn man wirklich machen will das kein thread etwas anderes machen kann (funktioniert nur mit einem prozessor)
Delphi-Quellcode:
mit __ asm { rdtsc } könnte man noch die tickcounts lesen und wirklich auf 1msek genau prüfen
procedure blaa;
asm // (no other thread can do something, doesnt work in IDE) // example, do not call sleep mov ecx, $FFFFFFFF @@weiter: dec ecx test ecx, ecx jnz @@weiter end; procedure TForm1.FormCreate(Sender: TObject); var tid: cardinal; begin tid := CreateThread(nil,0,@blaa,nil,CREATE_SUSPENDED,tid); SetThreadPriority(tid,THREAD_PRIORITY_TIME_CRITICAL); SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS); ResumeThread(tid); SetPriorityClass(GetCurrentProcess,NORMAL_PRIORITY_CLASS); end; obs aber sinnvoll is das so zu machen ist ne andere frage |
Re: µ Timer
Zitat:
Das bedeutet ein bit braucht 1/9600, um übertragen zu werden. Daher stimmt es nicht wenn man sagt in 1/9600 "s", denn 9600 sind keine Zeit, sondern bits. Da die serielle Schnittstelle nur 9 pins hat können gar nicht 16 bit auf einmal gesendet werden. Das könnte aller höchstens bei der parallelen Schnittstelle gehen. Ich habe mal bei meinem Rechner nachgeschaut-115200 bit/s schafft die serielle Schnittstelle, also 8,685...µs pro bit-das geht. Eine wichtige Sache ist, das, wie schon erwähnt, die Software, also die Befehle zu lange brauchen um ein Ereignis auszulösen. Daher die Frage: kann man in Delphi Assembler programmieren? Wenn ja, werden die Assembler Anweisungen sofort an die CPU geschickt oder gibt es da auch eine "Bremse". Schade das es keinen µTimer gibt! Noch ne Frage was ist dieses "Tick"?-kenn ich nicht. Wie lange dauert dieses "Tick"? Weiterhin danke für alle Antworten, sie sind alle willkommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr. |
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