امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
فاصله بین دو اینتراپت
نویسنده پیام
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #1
فاصله بین دو اینتراپت
سلام
من یه چیزی! ساختم که توش احتیاج دارم دور موتور رو دریارم . یعنی فاصله یک دور چرخش موتور رو در یارم .
الان سنسور گذاشتم . هر بار که موتور می چرخه int0 تحریک میشه و رو خروجی دیده میشه . حالا من فاصله بین هربار اینتراپت با بار بعدی رو می خام بدست بیارم . چی کار کنم ؟
راهنمایی در حد خیلی ابتدایی باشه لطفا" :(
۲۶-شهریور-۱۳۸۶, ۰۰:۵۲:۲۳
ارسال‌ها
پاسخ
IMeysam آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 323
موضوع‌ها: 56
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 53 تشکر در 30 ارسال )
ارسال: #2
 
استفاده از تایمر 16 بیتی بهترین کار ممکنه . به طوریکه شما با هر وقفه مقدار ثبات های TCNT را می خونی و زمان بدست میاد و بعد از خوندن دوباره صفر می کنی تا دوباره زمان رو اندازه بگیره .تایمر 1 یه تایمر 16 بیتیه . اگه فرکانس کار میکرو 1 مگا باشه اون میتونه تا فاصله زمانی 65ms رو تو هر دور اندازه بگیره (15 دور در ثانیه به بالا) . ولی اگه بخوای دور های کمتر رو اندازه بگیری(فاصله زمانی بیشتر) prescaler رو بذار 8 .

اي آمده از عالم روحاني تفت /////// حيران شده در پنج و چهار و شش و هفت
می نوش ندانی ز کجا آمده‌اي /////// خوش باش ندانی بکجا خواهی رفت
۲۶-شهریور-۱۳۸۶, ۰۹:۳۱:۲۱
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #3
 
باید از تایمر استفاده کنی
توی هر دور مقدار عدد قبلی رو بخونی صفر کنی و دوباره شروع کنه برای چرخش
تعداد دور در ثانیه رو هم میتونی به دست بیاری کاره راحت تری تعداد اینتراپت ها رو توی یک ثانیه بشمار

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۶-شهریور-۱۳۸۶, ۰۹:۵۰:۲۰
وب سایت ارسال‌ها
پاسخ
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #4
 
سلام
ممنون
اما یه سری چیزای دیگه هم هست ...
من دورم موتورم نهایت به 10 دور در ثانیه می رسه . یعنی کمه . نوسانات زیاد هم داره . ممکنه 4-5 دور در ثانیه باشه . پس نمی تونم تعداد اینتراپتها رو تو 1 ثانیه بشمارم . زیاد دقیق در نمیاد .

بعد حالا به هر روشی که شما بگین ! مثلا مدت یه دور چرخش رو که حساب می کنم باید 1/360 اون زمان رو هم حساب کنم و سر هر 1/360 اون زمان بتونم چیزی رو تو خروجی نشون بدم :cry:

بعد جدا از این زمان حاضر رو هم باید رو داشته باشم و مثلا برای نمایش روی LCD .

حالا نم یدونم کدوم کارو با کدوم تایمر بکنم
:(
دور بشمارم ؟ زمان بگیرم ؟
ممنون میشم راهنمایی کنین .
۲۶-شهریور-۱۳۸۶, ۱۴:۲۳:۰۳
ارسال‌ها
پاسخ
newdesign آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 218
موضوع‌ها: 14
تاریخ عضویت: فروردین ۱۳۸۶

تشکرها : 0
( 30 تشکر در 22 ارسال )
ارسال: #5
 
این روش رو از نظر برنامه نویسی میتونی پیاده کنی
دو تا متغیر سراسری بگیر همیشه اولی رو بریزی تو دومی بعد اولی رو با زمان مقدار دهی کنی
۲۶-شهریور-۱۳۸۶, ۲۰:۱۳:۰۰
وب سایت ارسال‌ها
پاسخ
IMeysam آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 323
موضوع‌ها: 56
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 53 تشکر در 30 ارسال )
ارسال: #6
 
اگه تعداد دور متغیره ، شما چه چیز رو می خواهید اندازه بگیرید؟ چون کمیت دور موتور یعنی تعداد دور در ثانیه یا دقیقه. اگه ثانیه بدردت نمی خوره خوب دقیقه رو بذار. دقیقا بگو چی می خوای. نکنه میخوای یه نمودار از وضعیت سرعت در طی زمان داشته باشی و اونو تو کامپیوتر نشون بدی :wink:

اي آمده از عالم روحاني تفت /////// حيران شده در پنج و چهار و شش و هفت
می نوش ندانی ز کجا آمده‌اي /////// خوش باش ندانی بکجا خواهی رفت
۲۷-شهریور-۱۳۸۶, ۰۸:۲۱:۰۲
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #7
 
شما یه کار دیگه هم می تونی بکنی اونم اینه که یه دور رو مثلا به 10 یا 20 قسمت تبدیل کنی یعنی هر یه دور 20 تا پالس بده کار رو برای سرعت های کم حل می کنه

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۷-شهریور-۱۳۸۶, ۱۰:۴۳:۳۳
وب سایت ارسال‌ها
پاسخ
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #8
 
Meysam نوشته است:اگه تعداد دور متغیره ، شما چه چیز رو می خواهید اندازه بگیرید؟ چون کمیت دور موتور یعنی تعداد دور در ثانیه یا دقیقه. اگه ثانیه بدردت نمی خوره خوب دقیقه رو بذار. دقیقا بگو چی می خوای. نکنه میخوای یه نمودار از وضعیت سرعت در طی زمان داشته باشی و اونو تو کامپیوتر نشون بدی :wink:

سلام
ممنون
من دقیقا" می خام زمان هر دور (نه میانگین رمان هر دور) رو بدونم . به همین خاطر ثانیه ای باید باشه . مثلا برای نمایش در کامپیوتر به قول شما :P

نقل قول: شما یه کار دیگه هم می تونی بکنی اونم اینه که یه دور رو مثلا به 10 یا 20 قسمت تبدیل کنی یعنی هر یه دور 20 تا پالس بده کار رو برای سرعت های کم حل می کنه
خوب سنسور جاسازی شده . بعدش هم دردسر اون کار زیاده . تازه چه فایده ای داره ؟ سرعت هم ممکنه به 20radpersec برسه گاهی . 8)
۰۱-مهر-۱۳۸۶, ۱۷:۵۹:۴۴
ارسال‌ها
پاسخ
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #9
 
من الان یه روش استافده کردم .
تایمر 1 رو استارت کردم .
توی وقفه ی اورفلو دادم مثلا ov++

و توی اینتراپت سنسور هم گذاشتم که برای به دست آوردن تعداد پالس تعداد اورفلوها رو در 65536 ضرب کنه بعد با اون 16 بیت تایمر جمع کنه . بعد تایمر رو صفر کنه واسه دور بعدی (اینتراپت بعدی)

الان مشکل من اینه که نمی دونم توی codevision چه جوری این عدد 16 بیتی رو با unsigned long int جمع کنم :(

TCNT1H
TCNT1L

ممنون که واسه ی یوزرهای بی سواد هم وقت می زارین . :oops:
۰۱-مهر-۱۳۸۶, ۱۸:۰۵:۳۱
ارسال‌ها
پاسخ
IMeysam آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 323
موضوع‌ها: 56
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 53 تشکر در 30 ارسال )
ارسال: #10
 
unsigned long int k;
ببین این جواب میده یا نه
k=k+TCNT1L+TCNT1H<<8;
شاید روش بهتری هم باشه. :roll:

اي آمده از عالم روحاني تفت /////// حيران شده در پنج و چهار و شش و هفت
می نوش ندانی ز کجا آمده‌اي /////// خوش باش ندانی بکجا خواهی رفت
۰۱-مهر-۱۳۸۶, ۲۱:۵۳:۱۱
وب سایت ارسال‌ها
پاسخ
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #11
 
آره
ممنون
اصلا چیز پیچیده ای نبوده Amaze
من خیلی گیج بودم . Amaze
فکرم رفته بود توی توابع تبدیل اکتال به دسیمال! که اصلا" ربطی نداشته :roll:

ممنون

اما سوال بعدیم !
اون متغیری که انساین لانگ اینت گرفتیمش و توش تعداد پالسهای هر بود بود که یادتونه ! من می خام در تقسیمات خاصی از اون عدد کار خاصی انجام بدم (توی دور بعدیش). مثلا فرض کنید مقدار اون متغیر شده n .
من می خام تو دور بعد توی پالس n/m ام یه خروجی رو فعال کنم که به موتور برسه .
مثلا یک دور گیریم که 5 ملیون پالس داشته . حالا میخام توی دور بعدی روی پالس 750 یه چیزی بدم به خروجی . باز توی پالس 800 یه چیزی و همینطور !
یه تایمر دیگه بزارم و کامپیر کنم هی ؟
:oops:
۰۲-مهر-۱۳۸۶, ۰۰:۴۹:۵۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  اتصال سنسور lm35 در فاصله 12 متری به میکرو ؟ mega16 3 1,643 ۲۷-بهمن-۱۳۹۸, ۱۸:۴۳:۲۸
آخرین ارسال: aKaReZa75
  <Counter OR Interrupt>کانتر یا اینتراپت؟ cortex-m3 6 3,604 ۰۶-مرداد-۱۳۹۴, ۲۲:۵۳:۴۵
آخرین ارسال: sharin
  کمک در مدار فاصله سنج اولتراسونیک rahim123 4 5,111 ۱۸-اسفند-۱۳۹۳, ۱۲:۴۷:۱۴
آخرین ارسال: 55235769
  فاصله سنج با بردی حدود 200 متر patmatp 3 3,249 ۱۰-بهمن-۱۳۹۳, ۱۳:۴۰:۵۰
آخرین ارسال: رسول
Question [سوال] چطوری میشه فاصله ی دو نقطه تو فضا را اندازه گرفت؟ PRO 1 1,907 ۰۴-بهمن-۱۳۹۳, ۲۰:۴۵:۵۳
آخرین ارسال: ayat2006
  اندازه گیری فاصله با صدا ghx 7 6,915 ۲۹-تير-۱۳۹۳, ۰۹:۰۸:۵۱
آخرین ارسال: رسول
Cool کمک فاصله سنج آلتراسونیک pahpad.elect 11 8,002 ۲۰-شهریور-۱۳۹۲, ۱۶:۳۴:۲۶
آخرین ارسال: pahpad.elect
Exclamation [سوال] سنسور مناسب برای تشخيص رنگ از فاصله englanderghost 3 3,387 ۲۲-مرداد-۱۳۹۲, ۰۱:۰۸:۱۱
آخرین ارسال: omid_phoenix
  مدار تشخیص فاصله با آلتراسونیک EBKA 40 41,424 ۱۷-اردیبهشت-۱۳۹۲, ۱۸:۴۹:۴۹
آخرین ارسال: mamal_7153
  فاصله سنج برای مسافت 100 متری parham144 10 9,964 ۱۳-مهر-۱۳۹۱, ۰۵:۰۲:۲۱
آخرین ارسال: vigraz

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS