عضویت     ورود  جرم این است که ندانیم زندگی خیلی ساده تر از اینهاست که ما فکر می کنیم . فردریش نیچه پنجشنبه، 30 خرداد ماه ، 1398

کانال تلگرام


تبلیغات متنی


منوی سایت


جست و جو در بانك مقالات




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 5490 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 5523 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 5374 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 5367 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 11941 بار]
 6: ادوات نوري 
[دفعات مشاهده : 5343 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 7031 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 6561 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 5797 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 7661 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 6475 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 14326 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 10450 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 7883 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 5978 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 6598 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 5924 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 6873 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 5688 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 5788 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 8886 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 7920 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 7952 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 6228 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 6504 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 9049 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 7494 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 6983 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 12148 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 9956 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 39635 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 18213 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 21451 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 24958 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 22674 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 25039 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 39027 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 20025 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 17083 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 21381 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]


زبان
انتخاب زبان نمایش :



مطالب جديد
· 1: طراحي نرم افزار محاسبه و تحليل قيمت تمام شده برق توليدي در نيروگاههاي حرارتي
· 2: Altitude Measurement Based on Beam Split and Frequency Diversity in VHF Radar
· 3: Electronic Simulators for Study of Aircraft Flight Paths
· 4: Computer-Aided Power System Analysis
· 5: سیستم بازشناسی ارقام دستنویس فارسی بر اساس الگوریتم آموزش فعال و شبکه های عصبی
· 6: Manual de Interfaz Gráfica de Usuario en Matlab
· 7: مجله December 2008 ، ELEKTOR
· 8: مروري بر مقالات منتشر شده درباره روش هاي مختلف حل پخش بار بهينه تا سال 2005 (قسمت اول)
· 9: مجله February 2011 ، ELEKTOR
· 10: MIMO Cognitive Radio:A Game Theoretical Approach
· 11: A New Approach for Control of IPFC for Power Flow Management
· 12: On the Satabiliity of Nonlinear Feedback Systems
· 13: دسته‌بندی بسته‌ها با استفاده از ماتریس‌های بیتی
· 14: Robust Text-Independent Speaker Identification Using Gaussian Mixture Speaker Models
· 15: A Sliding-Mode Adaptive Observer Chaotic Communication Scheme
· 16: VHDL: Programming by Example
· 17: Analysis of a Nonlinear Control System for Stabilizing a Missile
· 18: تکنیک موثر و جدید مدولاسیون دیجیتال
· 19: دانلود اسلایدهای درس شبیه سازی کامپیوتر ها به زبان فارسی
· 20: نقشه ی راه استقرار رایانش ابری در مراکز داده

[ آخرين مقالات ]


ارسال مقاله به سايت

 



...::: Ir-Micro.Com :::... :: View topic - اگر تعداد بیت های رجیستر تایمر برای ما کم بود چکار کنیم؟


اگر تعداد بیت های رجیستر تایمر برای ما کم بود چکار کنیم؟

 
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC Printable Version
View previous topic :: View next topic  
Author Message
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 21 ارديبهشت ماه ، 1389 19:56:54 Reply with quote Scroll Down to Next postGo to last Post of Page

تایمر های pic18f452 یا بصورت 8 بیتی کار میکنند یا 16 بیتی . ولی من میخواهم زمان صفر تا یک ثانیه را با دقت یک میکرو بسازم . یعنی اینکه بتوانم تاخیر تولید شده را با دقت یک میکرو ثانیه از صفر تا یک ثانیه بسازم . برای اینکار اگر بخواهم از تایمر استفاده کنم ، تایمر من باید 20 بیت داشته باشد . چون یک میلیون حالت میشود و یک میلیون در مبنای دو ، بیست بیت دارد . برای همین با یک تایمر 16 بیتی نمیتوانم کار کنم . به نظر شما استفاده از دستور delay_us معقول است ؟ چون شنیدم که این دستورها خیلی قابل اطمینان نیستند و ممکن است زمانشان دقیق نباشد و هی تغییر کند . میشه delay_us را با یک متغیر بکار برد ؟ مثلا عدد 956384 را در یک متغیر بریزیم و به دستور delay_us بگیم که به اندازه این متغیر صبر کن ؟ غیر از دستور delay و تایمر کسی راه دیگه ای میتونه به این حقیر پیشنهاد کنه؟ Question Exclamation Question Exclamation
Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 21 ارديبهشت ماه ، 1389 20:13:40 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

1 ميكرو ثانير خيلي راحت ميتونين با تايمر پي آي سي توليد كنين به شرطي كه كريستالتون فركانس بالا باشه. از 200 كيلو استفاده كنين. من خودم اين كار كردم ولي با زبون بيسيك و يه آي سي مولد پالس كه 1 مگا هرتز ميداد تو خروجي
Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 21 ارديبهشت ماه ، 1389 20:27:17 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
1 ميكرو ثانير خيلي راحت ميتونين با تايمر پي آي سي توليد كنين به شرطي كه كريستالتون فركانس بالا باشه. از 200 كيلو استفاده كنين. من خودم اين كار كردم ولي با زبون بيسيك و يه آي سي مولد پالس كه 1 مگا هرتز ميداد تو خروجي

ببخشید . من اصلا متوجه نشدم چی گفتید ... میشه یک کم بیشتر توضیح بدید ؟ اگر از تایمر میشه استفاده کرد ، پس اون مشکل کم بودن تعداد رجیسترهاشو که گفتم چکار کنم ؟
کریستالم فرکانس بالا هست ... حتی میخوام برم یک 25 مگاهرتزیشو بگیرم و بندازم . اون آی سی که گفتید چیکار میکنه ؟

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 21 ارديبهشت ماه ، 1389 22:07:28 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

من خودم تايمر طوري تنظيم كرده بودم كه هر ميكرو ثانيه 1 بار وقفه بده.شما هم بايد همين كار كنين. واسه پايه هاي مخصوص كريستال ساعت هم تو ميكرو اگر فركانستون بالاي 200 كيلو باشه (فكر ميكنم البته ,1 مگ حتما) نميتونين از كريستال استفاده كنين و بايد از يه سيگنال ژنراتور استفاده كنين كه من واسه اين كار جا سيگنال ژنراتور از آي سي 2206 استفاده كردم كه تا 1 مگا هرتز جواب ميده.
آقا حامدم گفتن كه اگر به پايه هاي مخصوص تايمر خاستيم كريستال بزنيم تا 200 كيلو مجازيم. از 200 كيلو به بالا بايد از يه آي سي يا سيگنال ژنراتور استفاده كنيم. نپرسيدمم چرا.ولي گفتن بايد فركانسي كه ميدين منظم باشه.فكنم با كريستال بالاي 200 كيلو منظم در نمياد

Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 10:40:20 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
من خودم تايمر طوري تنظيم كرده بودم كه هر ميكرو ثانيه 1 بار وقفه بده.شما هم بايد همين كار كنين. واسه پايه هاي مخصوص كريستال ساعت هم تو ميكرو اگر فركانستون بالاي 200 كيلو باشه (فكر ميكنم البته ,1 مگ حتما) نميتونين از كريستال استفاده كنين و بايد از يه سيگنال ژنراتور استفاده كنين كه من واسه اين كار جا سيگنال ژنراتور از آي سي 2206 استفاده كردم كه تا 1 مگا هرتز جواب ميده.
آقا حامدم گفتن كه اگر به پايه هاي مخصوص تايمر خاستيم كريستال بزنيم تا 200 كيلو مجازيم. از 200 كيلو به بالا بايد از يه آي سي يا سيگنال ژنراتور استفاده كنيم. نپرسيدمم چرا.ولي گفتن بايد فركانسي كه ميدين منظم باشه.فكنم با كريستال بالاي 200 كيلو منظم در نمياد

ممنون ... ولی فکر کنم متوجه منظور من نشدید .. من میخوام یک تاخیر به اندازه 0 تا یک ثانیه داشته باشم ، به طوریکه این قدرت را داشته باشم که میکرو ثانیه میکرو ثانیه ، اون را کم و زیاد کنم ... اگر من تا تاخیر 65536 میکرو ثانیه هم میخواستم ، میتوانستم از تایمر ها استفاده کنم ... چون که رجیستر تایمر ها 16 بیت جا دارند ... اما تا یک میلیون میکرو ثانیه (یا همون یک ثانیه) نمیتونم تاخیر ایجاد کنم ... برای همین گیر کردم.

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 10:54:12 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

دوست عزيز اين كه ديگه گير كردن نداره!!!!!!‌وقتي تو زير برنامه وقفه رفتيد 2 تا متغيير از نوع 16 بيتي درست ميكنين كه هروقت اومد تو زير برنامه وقفه به متغييره اولي 1 واحد اضافه شه و هر وقت اون متغيير اولي از 1000 بيشتر شد خود متغيير اولي صفر شه و به متغيير دومي 1 واحد اضافه شه. اينجوري تا هر رقمي كه بخواين ميتونين برين
موفق باشين

Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 11:33:33 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
دوست عزيز اين كه ديگه گير كردن نداره!!!!!!‌وقتي تو زير برنامه وقفه رفتيد 2 تا متغيير از نوع 16 بيتي درست ميكنين كه هروقت اومد تو زير برنامه وقفه به متغييره اولي 1 واحد اضافه شه و هر وقت اون متغيير اولي از 1000 بيشتر شد خود متغيير اولي صفر شه و به متغيير دومي 1 واحد اضافه شه. اينجوري تا هر رقمي كه بخواين ميتونين برين
موفق باشين

سلام حاجی ... دمت گرم . یک کم بیشتر توضیح میدی ؟ ببین ... وقتی رفتیم توی وقفه و دو تا متغیر تعریف کردیم ، بعد با اون دو تا چی کار کنیم ؟ مگه فقط نباید مقادیر رو در رجیستر های تایمر بریزیم تا هر وقت overflow رخ داد ، وقفه رخ بده ؟ ÷س اون دو تا متغیر که شما تعریف کردید چی میشه ؟ منظورتون اینه که یه جوری مقادیر اون ها رو بریزم توی تایمر ؟ اگه بشه یک کم بیشتر توضیح بدید واقعا ممنون میشم ... الان گیر کردم ... اصلا جلو نمیرم ... اگر بتونم از وقفه تایمر استفاده کنم که خیلی خوب میشه ...
ببخشید ... من تازه کارم ... یک کم مطالب رو بیشتر برای من تشریح کنید خیلی خیلی ممنون میشم !

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 12:59:35 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

ببين دوست عزيز ما تو زبان بيسيك اول برنامه 2 تا متغيير از نوع word كه تا 65536 ظرفيت داره انتخاي ميكنيم.به شكل زير
a var word
b var word
وقتي كه بعد از 1 ميكرو ثانيه وقفه رخ داد تو زير برنامه وقفه ميگيم(تمام اين دستورات(دستورات زير) تو زير برنامه وقفه بايد تعريف بشن)
a=a+1
و هر وقت a بزرگتر مساوي 1000 شد 1 واحد به متغيير بعدي اضافه كن و خودت صفر شو. به اين صورت
if a=>1000 then
b=b+1
a=0
endif
حالا اگر هر دو متغيير 1000 شدن يعني 1 ثانيه گذشته , و بايد 2 تا متغيير به شكل زير صفر كنين
if a=>1000 and b=>1000 then
a=0
b=0
endif
تو زير برنامه وقفه به جز ريست كردن رجيستر ها و مقدار دهي تايمر هر كار ديگه اي هم كه خواستين ميتونين بكنين.
در ضمن حتما بايد از فركانس 1 مگ واسه توليد 1 ميكرو ثانيه توليد كنين . اگر از كريستال 200 كيلو استفاده كنين كمترين مقدار شمارش 5 ميكرو ثانيه ميشه

Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 14:30:49 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

بابا تودیگه کی هستی ! دستت درد نکنه . البته دیگه نمیخواست دستوراتم بنویسی ... خیلی حال دادی به ما. نمیدونم چرا من اینقدر محدود فکر میکردم ... راست میگی ... اینطوری قشنگ میشه کاری رو که میخواستم اجرا کرد .... البته من با ccs برنامه نویسی میکنم و اونجا میشه متغیره دابل ورد هم تعریف کرد . اینطوری :
;int32 a
فقط من متحیرم که اگه هی یک میکرو ثانیه ، یک میکرو ثانیه بخوام برم تو روتین وقفه ، اشکالی به اجرای بقیه برنامه وارد نمیاد ؟چون خیلی برام مهمه که بقیه برنامه هم با سرعت بالایی اجرا بشه .
راستی یک مشکل اساسی . من دارم اطلاعات رو بایت بایت از یک دستگاه از طریق رابط یوزآرت به میکرو منتقل میکنم ... وقتی که اطلاعات رو هر 100 میلی ثانیه یک بار میفرستم ، بدون ایراد میگیره ... ولی اگر بایت ها رو تند تر ارسال کنم مثلا هر 5 میکرو ثانیه یکبار و کمتر از 5 میکرو ثانیه ، اون وقت میکرو قات میزنه و نمیتونه اطلاعاتو دریافت کنه . حالا این که چیزی نیست ...
توی همون ارسال 100 میکرو ثانیه یکبار ، اگر دکمه ریست رو بزنم و پایه ریست میکرو را فعال کنم ، مشکلی پیش نمیاد . اما اگه هی تند تند پشت سر هم میکرو را ریست کنم ، گاهی اوقات قات میزنه و نمیتونه اطلاعات رو که داره ارسال میشه درست دریافت کنه . یا مثلا اگه تغذیه را چند بار قطع کنم ، دوباره قات میزنه و تا ریستش نکنی درست نمیشه ... آخه من میخوام مدار را طوری طراحی کنم که با رفتن و آمدن برق و با خاموش روشن شدن ، قاطی نکنه ... بنظر شما ایراد کار از کجاست ؟ میخوام اگر از آسمون سنگ هم بباره مدار پایداری خودشو از دست نده .
ممکنه مربوط به کیفیت کریستال ، یا مقدار اون دو تا خازن عدسی که از طریق کریستال به زمین وصل میکنیم باشه ؟ من مقدار مناسب اون خازن ها را از تو دیتاشیت خوندم ... برای هر کریستال یک بازه برای انتخاب مقدار خازن داده بود ... مثلا از 1 تا 33 نانو فاراد . ممکنه مقدار دقیقی برای این خازن ها باشه که اگه اون مقدار رو بگذاریم کارکرد میکرو در سرعت های بالا ، و یا هنگام قطع شدن تغذیه و ... پایدار تر بشه ؟

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 15:59:19 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

من فكر نميكنم مشكلي تو برنامه رخ بده 1 ميكرو ثانير ميكرو خيييييلي فوري رد ميكنه . اصلا شما نميفهمين.
واسه يوزارتم من كه كار ميكردم بايد يه تاخير چند ميلي ثانيه فك ميكنم ميزاشتم بين ارسالام.اگر نميزاشتم درست ارسال نميكرد.بايد يه تاخيري باشه بينشون.
خوب مجبور نيستين كه هي پايه ريست بزنين اصلا واسش كليد نزارين تا ريست نكنين.
مدار هم با رفتن و اومدن برق امكان نداره قاطي كنه. شما وقتي خودتون منبع قطع و وصل ميكنين نويز ايجاد ميشه فكر ميكنم.آخه من خودمم يه مدت تو اين مسيله بدجور گيج شده بودم.وقتي تند تند منبع قطع و وصل ميكردم قاطي ميكرد. ولي همون مدار يه ساله بستم تاحالا توش مشكلي به وجود نيمده.امكانم داره به خاطر بالا بودن مقاومت ريستتون ايجوري بشه ها 1.2 كيلو بزارين ببينين درست نميشه.اگر شد بگين حتما.به مقدار خازن ها ربطي نداره.

Back to top
View user's profile Send private message Send e-mail
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 17:20:52 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
استفاده از یک متغیر تو ساب روتین وقفه یکی از روش های اضافه کردن محدوده تایمر هست . منتها چیزی که هست اینه که با کریستال 20 مگ ، کلاک داخلی 0.25 میکرو ثانیه هست . یعنی تو هر میکرو ثانیه 4 دستور زبان ماشین اجرا میشه . و وقفه هم 1 میکرو ثانیه یکبار رخ میده و تو زیر برنامه وقفه هم باید عمل جمع ، مقایسه و پرش یا صفر کردن مقدار تایمر (در صورت نیاز و یا در حالت خارج از محدوده رفتن متغیر) . و هر دستوری چه تو بیسیک و چه سی از چند دستور اسمبلی تشکیل شده اند که اگر تعداد مجموع این دستورات از تعداد پردازش دستور تو 1 میکرو ثانیه بیشتر باشه ، برنامه شما از روند رخ دادن وقفه عقب میمونه و مدار دچار مشکل میشه (البته واسه حالتی که حداقل تاخیر مثلا همون 1 میکرو ثانیه رو انتخاب کرده باشید) .
یک روش دیگه ای که به ذهنم میرسه اینه که برای تایمر یک پرسکالر (پری اسکیلر) شناور در نظر بگیرید . یعنی تایمر بتونه با توجه به رنج مورد نظر ، پرسکالر 1 یا 4 رو داشته باشه . پرسکالر 1 برای حالتی کاربرد داره که محدوده مقدار دهی تایمر زیر 65535 هست . مثلا 10 میکرو ثانیه رو میخواین تولید کنید .و پرسکالر 4 هم برای اضافه کردن مجازی 2 بیت به محدوده تایمر هست که مثل این میمونه که 2 بیت کم ارزش به تایمر اضافه میشه (سمت LSB) که برای محدوده بالای 65535 هست که میشه محدوده نزدیک به 1 ثانیه .
البته این واسه حالتی هست که کلاک داخلی شما 1 میکرو ثانیه هست (کریستال 4 مگ) .
برای تنظیم مقدار تاخیر مورد نیاز هم کافیه از CCP تو حالت مقایسه استفاده کنید و عدد مورد نظرتون رو تو رجیسترهای اون لود کنید تا با رسیدن تایمر به اون عدد ، وقفه رخ بده .

البته روش اول رو هم میشه با کمی تغییر درستش کرد که مهم ترین بخشش هم انتخابی کردن بخش مربوط به اضافه کردن مقدار و ... هست که طوری برنامه رو بنویسید که این دستورات فقط واسه محدوده بیش از 65535 اجرا بشه تا برنامه عقب نیفته .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 22 ارديبهشت ماه ، 1389 17:48:17 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

ايول آقا حامد.خييييلي قشنگ توضيح دادين.هيجا همچين چيزي نخونده بودم.به مخ خودمم نرسيده بود. ولي مگه تو 0.25 ثانيه كل برنامه اجرا نميشه؟ من فكر ميكردم كل برنامه اجرا ميشه . اگر 1 آزمايش ميشد انجام داد كه اين قضير ثابت كنه خيييييلي خوب ميشد.البته آقا سينا هم از 18f452 كه با فركانس 40 مگ هم ميتونه كار كنه استفاده ميكنن.كه در اين صورت 10 دستورالعمل تو هر ميكرو ثانيه اجرا ميشه
حالا من زمان 1 نانو ثانير ميخواست اندازه بگيرم و نشد. شما واسه اين كار چيزي به ذهنتون نميرسه؟

Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 23 ارديبهشت ماه ، 1389 20:15:42 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
ايول آقا حامد.خييييلي قشنگ توضيح دادين.هيجا همچين چيزي نخونده بودم.به مخ خودمم نرسيده بود. ولي مگه تو 0.25 ثانيه كل برنامه اجرا نميشه؟ من فكر ميكردم كل برنامه اجرا ميشه . اگر 1 آزمايش ميشد انجام داد كه اين قضير ثابت كنه خيييييلي خوب ميشد.البته آقا سينا هم از 18f452 كه با فركانس 40 مگ هم ميتونه كار كنه استفاده ميكنن.كه در اين صورت 10 دستورالعمل تو هر ميكرو ثانيه اجرا ميشه
حالا من زمان 1 نانو ثانير ميخواست اندازه بگيرم و نشد. شما واسه اين كار چيزي به ذهنتون نميرسه؟

سلام . خیلی ممنون . ببینم ... من datasheet میکرو 18f452 را نگاه کردم دیدم که بیشترین فرکانس کریستالی که داره 25 مگاهرتز هستش . شما از کجا دیدید که تا 40 مگا هرتز هم کار میکنه ؟

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 23 ارديبهشت ماه ، 1389 21:28:33 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

والا من چنتا كتاب پي آي سي دارم .ته همشون كه مشخصات پي آي سي هار ميزنه فركانس 18f452 رو 40 مگ زده.حتي تو كتاب آقا حامد. تو

چهل مگ زده

Back to top
View user's profile Send private message Send e-mail
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: جمعه، 24 ارديبهشت ماه ، 1389 22:22:04 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
والا من چنتا كتاب پي آي سي دارم .ته همشون كه مشخصات پي آي سي هار ميزنه فركانس 18f452 رو 40 مگ زده.حتي تو كتاب آقا حامد. تو

چهل مگ زده

آره حاجی ... منم دیتاشیتشو درست نگاه کردم دیدم اولش 40 مگاهرتز زده

Back to top
View user's profile Send private message Yahoo Messenger
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: جمعه، 24 ارديبهشت ماه ، 1389 22:55:06 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

با فرکانس 20 مگ میکرو کم میاره و برنامه از همزمانی در میاد . چون تو زیر برنامه باید چند کار انجام بشه . یکی افزایش یک واحد به متغیر اضافه شده برای تایمر هست . بعد از اون مقایسه با عدد 4 و بعد از اون در صورتی که به 4 نرسیده بود پرچم وقفه پاک بشه و دستور بازگشت از زیر برنامه وقفه که البته این برای حالتی هست که هیچ وقفه دیگری تو میکرو فعال نیست و دستورات غیر فعال و فعال کردن وقفه به کار برده نمیشه .
پس یک سیکل برای بازگشت از وقفه و یک سیکل برای اضافه کردن مقدار متغیر و یک سیکل هم برای پاک کردن پرچم وقفه از بین میره . پس میمونه 1 سیکل کاری که دستورات مقایسه ای هم بین 2 تا 3 سیکل ماشین زمان مصرف می کنند که اگر دستور مربوطه تو کامپایلر به صورت 3 کلمه ای نوشته شده باشه ، 2 سیکل زمان کم میاد و برنامه عقب میفته و اگر هم 2 کلمه ای باشه، 1 سیکل کم میاد .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
sina_javan
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Apr 03, 2010
Posts: 63





275872.00 امتیاز

Items

Status: Offline

PostPosted: جمعه، 24 ارديبهشت ماه ، 1389 23:46:44 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Hamed wrote:


یک روش دیگه ای که به ذهنم میرسه اینه که برای تایمر یک پرسکالر (پری اسکیلر) شناور در نظر بگیرید . یعنی تایمر بتونه با توجه به رنج مورد نظر ، پرسکالر 1 یا 4 رو داشته باشه . پرسکالر 1 برای حالتی کاربرد داره که محدوده مقدار دهی تایمر زیر 65535 هست . مثلا 10 میکرو ثانیه رو میخواین تولید کنید .و پرسکالر 4 هم برای اضافه کردن مجازی 2 بیت به محدوده تایمر هست که مثل این میمونه که 2 بیت کم ارزش به تایمر اضافه میشه (سمت LSB) که برای محدوده بالای 65535 هست که میشه محدوده نزدیک به 1 ثانیه .
البته این واسه حالتی هست که کلاک داخلی شما 1 میکرو ثانیه هست (کریستال 4 مگ) .
برای تنظیم مقدار تاخیر مورد نیاز هم کافیه از CCP تو حالت مقایسه استفاده کنید و عدد مورد نظرتون رو تو رجیسترهای اون لود کنید تا با رسیدن تایمر به اون عدد ، وقفه رخ بده .

البته روش اول رو هم میشه با کمی تغییر درستش کرد که مهم ترین بخشش هم انتخابی کردن بخش مربوط به اضافه کردن مقدار و ... هست که طوری برنامه رو بنویسید که این دستورات فقط واسه محدوده بیش از 65535 اجرا بشه تا برنامه عقب نیفته .

آقا مهدی ... من این تیکه از حرفای آقا حامد را نفهمدیم ...میشه با زبون شیواتون یک کمتوضیح بدین ؟
اینکه من پری اسکیلر رو تغییر بدم که نمیشه ... اون وقت رزولوشنم میاد پایین .... منظورم رو میفهمید ؟ یعنی اینکه دیگه یک میکرو ثانیه،یک میکرو ثانیه روی زمانم کنترل ندارم

Back to top
View user's profile Send private message Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: شنبه، 25 ارديبهشت ماه ، 1389 00:06:53 Reply with quote Go to Top of PageScroll Up to Previous post

راستش خودمم منظورشون ار پری اسکالر شناور نفهمیدم.ولی در کل منظورشون اینه که اگر از حالت ccp استفاده کنین دیگه میکرو عقب نمیمونه. سی سی پی هم مقدار تایمر رو با مقداری که ما بهش میدیم فکر میکنم مقایسه میکنه و اگر درست بود فلان کار میکنه.شما کریستال 40 مگ بزارین این مشکلاتون حل میشه و نیاز به تنظیم اینا نیست.
آقا حامد خیلی خوب میشه بگین کتاب dspic تون کی میدین تو بازار.کاش به زبان سی بود آموزشش.

Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC All times are GMT + 3.5 Hours
Page 1 of 1
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

 
 Jump to:   

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts کاربرانی که با دانلود کردن فایلها از سایت مشکل دارند بخوانند 92 Hamed 115853 چهارشنبه، 15 شهريور ماه ، 1391 12:01:25
mohamad_mousavi69 View latest post
No new posts دستور delay در ccs 2 naderkhani 2379 يكشنبه، 6 فروردين ماه ، 1391 12:57:38
naderkhani View latest post
No new posts نحوی نمونه برداری از آمپر ac بدون استفاده از ct 8 monjezy 15632 شنبه، 20 اسفند ماه ، 1390 22:55:17
exact-zero View latest post
No new posts مشكل استفاده از وقفه خارجي 41 arvinfx 39472 جمعه، 6 فروردين ماه ، 1389 15:55:00
Morteza_rk View latest post
No new posts کار کردن با header delay 4 yashar_moonboy 3137 جمعه، 16 آذر ماه ، 1386 12:46:30
Misaghsepehr View latest post
 


Powered by phpBB © 2001, 2008 phpBB Group

Ported to Platinum 7.6.b.4 V2 by sadeghkhafan

فروشگاه تخصصی برق و الکترونیک ایران میکرو
www.iran-micro.com
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL.
Powered by Platinum 7.6.b.4 v2
Powered by Platinum 7.6.b.4 v2 Persian

مدت زمان ایجاد صفحه : 0.25 ثانیه