۱۴-تير-۱۳۸۹, ۰۴:۱۸:۰۵
۱۴-تير-۱۳۸۹, ۰۶:۵۳:۵۱
با وقفه خارجی. وقفه رو روی لبه بالا رونده تنظیم کن و خروجی pwm رو هم به پایه وقفه (INTx) وصل کن.
با ورودی پورت هم میشه ...
با ورودی پورت هم میشه ...
۱۴-تير-۱۳۸۹, ۱۱:۵۵:۲۱
Pulsein
توسط اين دستور ميتوان زمان تناوب يک پالس مربعي را اندازه گرفت ، فرم کلي اين دستور به شکل زير است:
کد php:
Pulsein Var , PINX , Y , State
اين دستورزمان تناوب پالس اعمال شده به پورت PINX و پين Y دلخواه را در متغير Var که بايد از جنس Word باشد قرار مي دهد .
شما ميتوانيد مشخص کنيد که زمان بين از صفر به يک رفتن يا از يک به صفر رفتن پالس اندازه گرفته شود ، براي حالت اول به جاي STATE صفر و براي حالت دوم به جاي STATE يک قرار دهيد .
مثال :
کد php:
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cursor Off
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2 , _
Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Word
Config PORTC.0 = Input
Do
Bitwait PINC.0 , Reset
Pulsein X , PINC , 0 , 1
Locate 1 , 1 : Lcd "1 = " ; X ; " "
Bitwait PINC.0 , Set
Pulsein X , PINC , 0 , 0
Locate 2 , 1 : Lcd "0 = " ; X ; " "
Loop
End
در مثال بالا زمان تناوب پالس مثبت و منفی که به پين C.0 اعمال شده اندازه گرفته مي شود و سپس بر روي LCD نمايش داده مي شود . (زمان تناوب نبايد از 65535 ميلي ثانيه بيشتر باشد ، اين دستور از تايمر هاي ميکرو استفاده نمي کند .)
منبع : کتاب بسکام سعید یه نفر
۱۵-تير-۱۳۸۹, ۰۰:۳۸:۵۷
با میکرو نمیشه مدت زمان لبه بالا رونده رو که خود میکرو ایجاد می کنه حساب کرد. چون لبه های بالا و پایین رونده به علت دقت پایین بودن قطعات بوده و هرچی کیفیت قطعات بالا تر باشه لبه های تیز تری ایجاد میکنه
پس میکرویی که سرعتش انقدر پایینه که لبه ایجاد میکنه، باهاش نمیشه زمان لبه خود میکرو رو حساب کرد. اما با پروسسورهای فرکانس بالا میشه لبه میکرو رو اندازه گرفت
پس میکرویی که سرعتش انقدر پایینه که لبه ایجاد میکنه، باهاش نمیشه زمان لبه خود میکرو رو حساب کرد. اما با پروسسورهای فرکانس بالا میشه لبه میکرو رو اندازه گرفت
۱۸-تير-۱۳۸۹, ۱۷:۵۷:۳۰
سلام
خیلی ممنون از راهنمایی هاتون
من یه موج مربعی دارم که دامنه اون 1 میلی ثانیه است. پس دامنه لبه بالا رونده کمتر از 1 میلی ثانیه است.
من مشکلی تو تشخیص وضعیت صفر یا یک موج ندارم فقط مشکلم دقت اندازه گیری است. درضمن اگه بتونم از تایمر کانتر استفاده کنم بهتره چون نمی خوام پردازنده مشغول بشه به نظر شما تایمر کانتر این دقت رو داره.
خیلی ممنون از راهنمایی هاتون
من یه موج مربعی دارم که دامنه اون 1 میلی ثانیه است. پس دامنه لبه بالا رونده کمتر از 1 میلی ثانیه است.
من مشکلی تو تشخیص وضعیت صفر یا یک موج ندارم فقط مشکلم دقت اندازه گیری است. درضمن اگه بتونم از تایمر کانتر استفاده کنم بهتره چون نمی خوام پردازنده مشغول بشه به نظر شما تایمر کانتر این دقت رو داره.
۱۹-تير-۱۳۸۹, ۰۱:۰۹:۰۵
آره !