سلام.
من تو پروژم هیچ فرمی ندارم.
ولی نیاز به تایمر دارم. یه روش اینه که با حلقه ها تایمر رو شبیه سازی کنم. ولی اگه بخوام از خود تایمر در ماژول استفاده کنم چطور باید این کار رو انجام بدم؟ حتما باید از تایمر خود ویبی استفاده کنم.
Printable View
سلام.
من تو پروژم هیچ فرمی ندارم.
ولی نیاز به تایمر دارم. یه روش اینه که با حلقه ها تایمر رو شبیه سازی کنم. ولی اگه بخوام از خود تایمر در ماژول استفاده کنم چطور باید این کار رو انجام بدم؟ حتما باید از تایمر خود ویبی استفاده کنم.
اونجوری که من فهمیدم شما جواب خودتون رو پیدا کردید
نقل قول:
نمی دونم به دردت می خوره یا نه ولی می تونی از دستور Timer استفاده کنی...
A = Timer
While Timer - A < 10
Wend
{.... Commands}
سلام.
نه عزیز این که نشد تایمر. پدر cpu رو در میاره.
سلام
كسي ميدونه چطوري ميتونيم تاخير هاي كمتر از 1 ميلي ثانيه درست كنيم؟ (براي ارتباط با سخت افزار بيروني ميخوام)
تايمر vb كه كمتر از 1 ميلي ثانيه نداره. ممنون ميشم اگه پاسخ بديد.
فکر می کنم این به کارت بیاد<<<<<
ساخت يک تايمر با دقت بالا : شايد تا بحال از کنترل تايمر موجود در نوار ابزار ويژوال بيسيک استفاده کرده باشيد . اين تايمر داراي دقت حدود ۵۵ ميلي ثانيه است . براي دستيابي به زمانهاي با دقت بالاتر اين کنترل مفيد نخواهد بود .
تابع GetTickCount يک API موجود در کتابخانه Kernel32.dll است . اين تابع طول زماني را که سيستم شروع به کار کرده است را برحسب ميلي ثانيه برمي گرداند :
براي بررسي طي شدن يک مدت زماني خاص شما ابتدا بايد مقدار اين تابع را در يک متغير کمکي مثل TempTime قرار دهيد سپس در يک حلقه Do-Loop بايد اختلاف زمان GetTickCount جديد و زمان TempTime را با مقدار زماني که مي خواهيد سپري شود مقايسه کنيد :نقل قول:
Private Declare Function GetTickCount Lib "kernel32" () As Long
توسط کد بالا مي توان يک عمليات خاص را براي يک مدت زماني مشخص اجرا کرد .نقل قول:
TempTime = GetTickCount()x
Do While DesiredTime < GetTickCount() - TempTime
Do some things'
Loop
کد زير نشان مي دهد که چگونه مي توان دستورات خاصي را در فواصل زماني خاص اجرار کرد :
همچنين از تابع GetTickCount مي توان براي benchmark برنامه ها استفاده کرد . بعبارت ديگر مي توان زمان اجراي يکسري دستورات خاص را بدست آورد .نقل قول:
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 زمان کارکرد رو بر حسب میلی ثانیه بر میگردونه. ایشون گفتن کمتر از میلی ثانیه. چیزی مثل میکرو ثانیه.
فکر کنم میلی ثانیه به میکرو ثانیه هم بشه تو یک تابع تبدیل کرد
سلام.
شما میلی رو در 1000 ضرب کنی میشه میکرو. ولی وقتی تابع میلی بر گردونه دقت میکرو رو نخواهد داشت.
آقا بیخیال
مگه می خوای آپولو هوا کنی
چه خبره
میکرو سانیه
حالا دارم یه دونه تایمر آپ می کنم
ببین شاید به دردت خورد
:31: [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]نقل قول:
سلام
از بابت پست قبليت ممنون. فكر كنم قبلاً هم اين روش رو يه جا ديگه ديده بودم. ولي هنوز امتحانش نكردم.
بعدشم همونطور كه گفتم دليل اين كه ميخوام دقت ميكروثانيه داشته باشم اينه كه قصد دارم از طريق پورت پرينتر با بيرون ارتباط برقرار كنم. همونطور كه ميدونيد مثلاً براي نوشتن اطلاعات روي يك EEPROM بايد بين يك و صفر كردن پايه ها ي پورت حدود 4 ميكروثانيه صبر كنيم. و اين امر توسط تايمر ممكن نيست.
به هر حال از توجهتون ممنون. (در ضمن منتظر اون تايمرتون هم هستم)