PDA

نسخه کامل مشاهده نسخه کامل : استفاده از تایمر بدون فرم



Payman_62
06-10-2007, 21:57
سلام.
من تو پروژم هیچ فرمی ندارم.
ولی نیاز به تایمر دارم. یه روش اینه که با حلقه ها تایمر رو شبیه سازی کنم. ولی اگه بخوام از خود تایمر در ماژول استفاده کنم چطور باید این کار رو انجام بدم؟ حتما باید از تایمر خود ویبی استفاده کنم.

dr.bronx
08-10-2007, 00:57
اونجوری که من فهمیدم شما جواب خودتون رو پیدا کردید

نمی دونم به دردت می خوره یا نه ولی می تونی از دستور Timer استفاده کنی...
A = Timer
While Timer - A < 10
Wend
{.... Commands}

Payman_62
08-10-2007, 01:23
سلام.
نه عزیز این که نشد تایمر. پدر cpu رو در میاره.

behzadshams
08-10-2007, 13:05
سلام
كسي ميدونه چطوري ميتونيم تاخير هاي كمتر از 1 ميلي ثانيه درست كنيم؟ (براي ارتباط با سخت افزار بيروني ميخوام)
تايمر vb كه كمتر از 1 ميلي ثانيه نداره. ممنون ميشم اگه پاسخ بديد.

dr.bronx
08-10-2007, 23:37
فکر می کنم این به کارت بیاد<<<<<

ساخت يک تايمر با دقت بالا : شايد تا بحال از کنترل تايمر موجود در نوار ابزار ويژوال بيسيک استفاده کرده باشيد . اين تايمر داراي دقت حدود ۵۵ ميلي ثانيه است . براي دستيابي به زمانهاي با دقت بالاتر اين کنترل مفيد نخواهد بود .
تابع GetTickCount يک API موجود در کتابخانه Kernel32.dll است . اين تابع طول زماني را که سيستم شروع به کار کرده است را برحسب ميلي ثانيه برمي گرداند :


Private Declare Function GetTickCount Lib "kernel32" () As Long

براي بررسي طي شدن يک مدت زماني خاص شما ابتدا بايد مقدار اين تابع را در يک متغير کمکي مثل TempTime قرار دهيد سپس در يک حلقه Do-Loop بايد اختلاف زمان GetTickCount جديد و زمان TempTime را با مقدار زماني که مي خواهيد سپري شود مقايسه کنيد :


TempTime = GetTickCount()x
Do While DesiredTime < GetTickCount() - TempTime
Do some things'
Loop


توسط کد بالا مي توان يک عمليات خاص را براي يک مدت زماني مشخص اجرا کرد .
کد زير نشان مي دهد که چگونه مي توان دستورات خاصي را در فواصل زماني خاص اجرار کرد :


ExitFunction = False
TempTime = GetTickCount()x
Do While not(ExitFunction)x
If DesiredTime < GetTickCount() - TempTime then
Reset the temporary variable'
TempTime = GetTickCount()x
Do some things'
End If
Loop


همچنين از تابع GetTickCount مي توان براي benchmark برنامه ها استفاده کرد . بعبارت ديگر مي توان زمان اجراي يکسري دستورات خاص را بدست آورد .

Payman_62
09-10-2007, 02:43
سلام.
دکتر جان GetTickCount زمان کارکرد رو بر حسب میلی ثانیه بر میگردونه. ایشون گفتن کمتر از میلی ثانیه. چیزی مثل میکرو ثانیه.

majj
09-10-2007, 08:44
فکر کنم میلی ثانیه به میکرو ثانیه هم بشه تو یک تابع تبدیل کرد

Payman_62
09-10-2007, 21:44
سلام.
شما میلی رو در 1000 ضرب کنی میشه میکرو. ولی وقتی تابع میلی بر گردونه دقت میکرو رو نخواهد داشت.

dr.bronx
09-10-2007, 21:54
آقا بیخیال
مگه می خوای آپولو هوا کنی
چه خبره
میکرو سانیه
حالا دارم یه دونه تایمر آپ می کنم
ببین شاید به دردت خورد

behzadshams
10-10-2007, 10:05
آقا بیخیال
مگه می خوای آپولو هوا کنی
چه خبره
میکرو سانیه
حالا دارم یه دونه تایمر آپ می کنم
ببین شاید به دردت خورد

:31:[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
از بابت پست قبليت ممنون. فكر كنم قبلاً هم اين روش رو يه جا ديگه ديده بودم. ولي هنوز امتحانش نكردم.
بعدشم همونطور كه گفتم دليل اين كه ميخوام دقت ميكروثانيه داشته باشم اينه كه قصد دارم از طريق پورت پرينتر با بيرون ارتباط برقرار كنم. همونطور كه ميدونيد مثلاً براي نوشتن اطلاعات روي يك EEPROM بايد بين يك و صفر كردن پايه ها ي پورت حدود 4 ميكروثانيه صبر كنيم. و اين امر توسط تايمر ممكن نيست.

به هر حال از توجهتون ممنون. (در ضمن منتظر اون تايمرتون هم هستم)

dr.bronx
10-10-2007, 23:18
سلام دوباره
آقا پیمان این جواب شما است
البته فکر کنم جواب شما هم باشه جناب behzadshams
این لینک دانلود
این بدون هیچ تایمری یک شمارنده تونسته کار بزاره توی یک فرم
:18:

این هم لینک دانلود - - امیدوارم به کارتون بیاد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

behzadshams
11-10-2007, 14:58
سلام
اين فايل جديد رو نميتونم دانلود كنم . ميشه يه جا ديگه آپلود كني؟ رپيدشير به آيپيم گير ميده.
در مورد اون GetTickCount هم وقتي زمان رو به ميلي ثانيه برميگردونه پس به درد نميخوره.
البته دقيقاً متوجه نشدم كه دقتش ميلي ثانيه است يا فقط بر حسب ميلي ثانيه ميده.

ممنون

Payman_62
12-10-2007, 03:59
سلام.
دکتر جان من عرض کردم در پروژه فرم ندارم.

MrJamshidy
12-10-2007, 17:32
نمیدونم می تونی از API ها استفاده کنی یا نه ولی برات میزارم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید