عضویت     ورود  هیچ سفره‏اى با بركت‏تر از سفره‏اى نیست كه یتیم بر سر آن بنشیند. حضرت محمد (ص) شنبه، 2 شهريور ماه ، 1398

کانال تلگرام


تبلیغات متنی


منوی سایت


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




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 5659 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 5674 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 5528 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 5522 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 12132 بار]
 6: ادوات نوري 
[دفعات مشاهده : 5465 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 7203 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 6711 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 5961 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 7799 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 6630 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 14507 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 10592 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 8026 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 6142 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 6761 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 6081 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 7000 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 5847 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 5915 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 9127 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 8069 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 8098 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 6382 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 6660 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 9216 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 7648 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 7100 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 12316 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 10092 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 39826 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 18413 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 21570 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 25110 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 22811 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 25207 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 39241 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 20196 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 17205 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 21518 مشاهده ]

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


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



مطالب جديد
· 1: Measured Impedance in Double Circuit Transmission Lines for Faults on Second Circuit
· 2: تكنيك “بهترين گوشه در مربع حالت” براي عمومي سازي حالات محيطي در يك دامنه چند عامله همكاري گرا
· 3: Wind Energy Systems for Electric Power Generation
· 4: يك تقويت كننده سوئيچ شونده جديد با توان مصرفي كم براي كاربرد در مدارات ولتاژ پائين
· 5: IEEE Std 1475-1999
· 6: Modelling and Analysis of Electric Power Systems
· 7: On the Impact of Resilience, Inertia, and Information Foraging in Global Participatory Innovation Co
· 8: طراحي و ساخت آنتن ميكرواستريپ بهينه سازي شده از نوع تك تغذيه اي با پلاريزاسيون دايره اي
· 9: تشريح عملكرد سيستم SCADA و كاربرد آن در شبكه انتقال قدرت و تشريح عملكرد دستگاههاي ثبات Fault Recor
· 10: دانلود جزوه حل مسائل حساب دیفرانسیل و انتگرال
· 11: COLOR TELEVISION SIGNAL RECEIVER DEMODULATORS
· 12: Cross-Layer Contextual Interactions in Wireless Networks
· 13: Fiber-Optic Communications Systems, Third Edition
· 14: طراحی، شبیه سازی و پیاده سازی یک سوئیچ ATM/IP با سرعت بالا
· 15: طراحی و ساخت آنتن مسطح سینوس با پلاریزاسیون دوگانه در محدودۀ فرکانسی 2-18GHz
· 16: روشهاي برداشت اطلاعات مكاني و توصيفي شبكه برق منطقه اي باختر و پياده سازي درسيستم اطلاعات جغرافيايي
· 17: IEEE Std 319-1971
· 18: شناسايي عوامل مؤثر بر پياده سازي برنامه هاي نت شبكه انتقال در حوزه ديسپاچينگ
· 19: Morphologic Edge Detection
· 20: Novel Rotary Electrical Capacitance Tomography System

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


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

 



...::: 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 117926 چهارشنبه، 15 شهريور ماه ، 1391 12:01:25
mohamad_mousavi69 View latest post
No new posts دستور delay در ccs 2 naderkhani 2442 يكشنبه، 6 فروردين ماه ، 1391 12:57:38
naderkhani View latest post
No new posts نحوی نمونه برداری از آمپر ac بدون استفاده از ct 8 monjezy 15794 شنبه، 20 اسفند ماه ، 1390 22:55:17
exact-zero View latest post
No new posts مشكل استفاده از وقفه خارجي 41 arvinfx 40111 جمعه، 6 فروردين ماه ، 1389 15:55:00
Morteza_rk View latest post
No new posts کار کردن با header delay 4 yashar_moonboy 3167 جمعه، 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.43 ثانیه