ايران ويج

نسخه‌ی کامل: timer کمک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5
سلام
ممنون
ولی آخه تاخیرهام در حد us هست . فکر کنم اگه تو حلقه بزارم خیلی خطای ناخواسته تولید می کنه . :cry:
ضمنا کدویژن هم مسلما" متغیر برای دیلی قبول نمی کنه . اگه قبول می کرد که مشکلی نداشتم :wink:
استفاده از تایمر راه خوبی
سلام
استفاده از تایمر دردسر داره . ولی ممنون بابت پیشنهاد
این تابع رو استافده کردم آخر :

// e.g. with 4Mhz and 5 cycles per loop, the resolution is 1.25 us
void delay_us(unsigned short time_us)
{
unsigned short delay_loops;
register unsigned short i;
delay_loops = (time_us+3)/5*CYCLES_PER_US; // +3 for rounding up (dirty)

// one loop takes 5 cpu cycles
for (i=0; i < delay_loops; i++) {};
}

یه سوال دارم .
من الان از delay_ms(1000) استفاده می کنم اما 1 ثانیه رو نمی گیرم .یه کم بیشتر طول میکشه . فرکانس هم روی 8 مگه . فیوزبیت رو هم پروگرم کردم . مشکل از چی می تونه باشه ؟ مثلا 10-20 درصد خطا داره . ضمنا از تابع دیلی خوده delay.h مربوط به کدویژن استفاده کردم .
تو پروتئوس این خطا رو دیدی یا تو عمل؟ چون نوسانساز RC داخلی به تغذیه حساسه
Meysam نوشته است:تو پروتئوس این خطا رو دیدی یا تو عمل؟ چون نوسانساز RC داخلی به تغذیه حساسه

توی عمل .
یعنی باید چه کنم ؟
تو پروتئوس تست کن اگه بازم خطا داشت اشکال از کامپایلره ولی بعید می دونم چون خودم این دستور رو تست کردم.(موقع تست تو پرو تئوس باید با real time خود پروتئوس زمان رو اندازه بگیری نه با زمان واقعی که مثلا تو ساعت ویندوز هست)
ولی اگه تو پروتئوس خطا نگرفت باید در مدار اصلی تغذیه 5 ولت درست و حسابی بذاری. اگه می خوای تو تو ولتاژ های پایین کار کنی باید یه سری تنظیمات انجام بدی تا بتونی از نوسان ساز داخلی استفاده کنی که متاسفانه من بلد نیستم . در کل وقتی داری از نوسان ساز داخلی استفاده می کنی باید تغذیه ثبات داشته باشه.
یه نکته ی دیگه این که اگه دقت می خوای باید بری سراغ کریستال خارجی و سعی کن کریستال 6 صفر تهیه کنی.
سلام
ممنون عزیز
به فرمایش شما عمل کردم کریستال خارجی گرفتم
از این 32762 ها گرفتم . حالا اینو بستم به tosc1 و tosc2 . بدون هیچ خازن و چیز اضافه ی دیگه ای .
حالا اینو باید کجا کانفیگ کنم ؟ کریستال رو تو ویزارد همینو بنویسم ؟
فیوزبیتا رو چه کنم ؟ تو کتاب کاهه در مورد این دو تا مطلب زده دوتاش با هم فرق داره .یکی صفحه 107 یکی هم 113 .
چه کنم ؟
شما توی پروگرامر جایی که فرکانس رو نوشته باید مقدار کریستال رو وارد کنی
و فیوز بیت ها رو هم توی کاتالوگش نوشته شما باید بزاری روی کریستال خارجی (کدوم حالتش زیاد مهم نیست)
سلام
ممنون
منم همین کارو کردم
منتها با دو تا کریستال
یکی 32768 وصل کردم به tosc ها و یکی هم 16 مگ وصل کردم به xtal ها .
میکرو رو پروگرم کردم . بعدش فیوزبیتا رو مطابق شکل زیر تغییر دادم .
اما بلایی که سر همه ناشیا میاد سر من هم اومد . دیگه میکرو غیرقابل دسترس شد :(
نمی دونم چرا ! جفت کریستالها هم الان وصلن بهش . باید بتوه پروگرمش کنه . اما نمی دونم چش شده :x
میکرو هم 16 غیر ال هست .
چه کنم ؟
[تصویر:  wdksn6upc6lyr3js1rt5.jpg]
اولا چرا 2 تا کریستال؟
با این فیوز بیت ها فکر کنم رفته رو کلاک خارجی (اگه اشتباه نکنم) نیاز به نوسان ساز خارجی برای پروگزام کردن داری
صفحه‌ها: 1 2 3 4 5