ايران ويج

نسخه‌ی کامل: دستور کدویژن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7
سلام
من با بسکام خیلی کار کردم ولی حالا زدم تو کار کدویژن با یه مشکلی بر خوردم تو تمام کتابام نگاه کردم ولی دستوری ندیدم که مقدار تایمر میکرو رو بخونم مثلا تو بسکام با دستور a=Timer2 میشه این کارو کرد اگه کسی می دونه لطفا کمک کنهShySad
آره عزیز چرا نشه.
نقل قول: a=TCNT2;
همین.
ببین با بیسیک کار نکن.چون خلاقیت آدم رو کور میکنه.چون همه ی توابع و دستورات رو تو خودش آماده داره.
از امتیاز های دیگه کدویژن اینه که به زیان فوق العاده قدرت مند سی هستش که اکثر میکرو ها هم با سی برنامشون نوشته میشه.
یکی دیگه از امتیاز هاش اینه که کدویزارد داره که خودش کد هارو میسازه واست بدون هیچ اشتباهی و بدون اینکه ارزش برنامه ات رو پایین بیاره.
بعدشم شما کتاب مرجع کامل میکرو کنترل های AVR رو بگیر.(جلدش سبز رنگه و 640 صفحه هستش و 3نفر اونو نوشتن(حوصله ندارم اسمشونو بنویشم)).
موفق باشی....
سللام
ببخشید معادل این دستور چیه
pulsein
(۱۶-مهر-۱۳۹۱, ۱۶:۲۴:۲۷)hadikh73 نوشته است: [ -> ]سللام
ببخشید معادل این دستور چیه
pulsein

سلام

واسه یک سری از دستورات معادل وجود نداره، مثل دستور DTMFOUT

باید معادل همچین دستوراتی رو خودتون با ترکیب چند حلقه و دستور بدست بیارید.
من الان دو روزه که دارم دور سرم می چرخم و خیلی خیلی گیج شدم نه تایمر این کارو میکنه نه خود برنامه کلا گیج شدمAngryAngry
اگه راهی هست بگید ممنون خیلی اضطراریه
(۱۶-مهر-۱۳۹۱, ۱۸:۲۴:۰۵)hadikh73 نوشته است: [ -> ]من الان دو روزه که دارم دور سرم می چرخم و خیلی خیلی گیج شدم نه تایمر این کارو میکنه نه خود برنامه کلا گیج شدمAngryAngry
اگه راهی هست بگید ممنون خیلی اضطراریه

من با کدویژن زیاد کار نکردم ولی مطمعنا میشه؛

شما باید ابتدا یه پالسی رو با یه دستوری روی یک پایه ایجاد کنید(مثل ایجاد pwm در بسکام) و بعد دوره تناوب اون پایه رو با دستور دیگه ای اندازه گیری کنید.

لینک این مقاله رو پیدا کردم؛

(خودم نگاه نکردم، ببین کارت راه میافته؟ )



کار با تایمرها در کدویژن
پالسش که دارم با 555 تولید میشه فقط باید همین دوره تناوبش اندازه بگیرم که نمیشهExclamation
بايستي تابعش رو خودتون بنويسيد.
help بسكام رو اگر نگاه كنيد ، مي بينيد كه يكي از تايمرها رو درگير مي كنه ( اگر اشتباه نكنم )
براي Codevisin :
شما هم بايستي از تايمرها براي اين كار استفاده كنيد.
تو Net هم يه سرچي بزنيد بايستي موجود باشه. كار سختي هم نيست ،‌خودتون هم با داشتن اطلاعات كافي از قابليت هاي تايمر مي تونيد اين كار رو انجام بديد.

موفق باشيد.
بعد از 4 روز تلاش بلاخره تونستم یه برنامه بنویسم ولی ایرادش اینه که هر دفعه یه عدد متفاوت بهم میده(پالس ورودی ثابته ولی)برنامه رو گذاشتم دوستان میشه نگاهش کنید و ببینید چه ایراد داره ممنون
/*تایمر 2 فعال میشه یه متغیرو اضافه می کنه(a) و این متغیر بین صفر و یک محدوده تو برنامه هرموقع متغییر a صفر بود و ورودی یک بود یه متغییر دیگه اضافه میشه(b) که در لحظه صفر شدن ورودی b=c و b دوباره برای شمارش بعدی صفر میشه و از اول میشماره c می شه مقدار پالس ورودی. پالس از پورت b.0وارد میشه:*/Exclamation
(۱۸-مهر-۱۳۹۱, ۰۰:۳۸:۰۴)hadikh73 نوشته است: [ -> ]بعد از 4 روز تلاش بلاخره تونستم یه برنامه بنویسم ولی ایرادش اینه که هر دفعه یه عدد متفاوت بهم میده(پالس ورودی ثابته ولی)برنامه رو گذاشتم دوستان میشه نگاهش کنید و ببینید چه ایراد داره ممنون
/*تایمر 2 فعال میشه یه متغیرو اضافه می کنه(a) و این متغیر بین صفر و یک محدوده تو برنامه هرموقع متغییر a صفر بود و ورودی یک بود یه متغییر دیگه اضافه میشه(b) که در لحظه صفر شدن ورودی b=c و b دوباره برای شمارش بعدی صفر میشه و از اول میشماره c می شه مقدار پالس ورودی. پالس از پورت b.0وارد میشه:*/Exclamation

سلام
برنامه را زیاد بیچیده کرده اید -چون کد نویسی ومحاسبه را اشنایی دارید خلاصه میگویم

تایمر 1 را استارت کنید
ورودی را بخوانید مثل PINB.0 در یک if
اگر PINB.0=0 خروج از حلقه(شرط نقیض حلقه)
اگر PINB.0=1 برگشت به خط اول(این اگر فقط برای توضیح است دستور برگشت به خط اول است)

تایمر1 را بخوانید(INTB=TCNT1)
تایمر 1را صفر کنید(TCNT1=0)
تایمر 1 را استوب کنید
مقدار بدست امده را بربالس ساعت میکرو تقسیم کنید(INTB=INTB/CLOCK)
برگشت به خط اول
مقدار INTB در هر بار زمان بالس 1 555 است

(اگر زمان بالس از 65535 تقسیم بر CLOCK در صورت استفاده از تایمر 1 ویا از255 تقسیم بر CLOCKدر صورت استفاده از تایمر 2 یا 0 بیشتر باشد
برنامه شمارش وقفه را هم باید اضافه کنید)

موفق باشید
به به! آقای vigraz دستتون درد نکنه واقعا گیر کرده بودمHappyHappyClapClap
صفحه‌ها: 1 2 3 4 5 6 7