حدودا 2 ثانیه طول میکشه.
پردازنده منتظر دریافت عدد از کیپد میمونه و وقتی که تایمر وقفه داد، وقفه سریال فعال میشه(و تایمر غیر فعال). واگر کاربر عددی را وارد کرد مقدار تایمر ریست میشه. این کار واسه...
نوع: ارسال ها; کاربر: zoz_zozm; کلمات کلیدی:
حدودا 2 ثانیه طول میکشه.
پردازنده منتظر دریافت عدد از کیپد میمونه و وقتی که تایمر وقفه داد، وقفه سریال فعال میشه(و تایمر غیر فعال). واگر کاربر عددی را وارد کرد مقدار تایمر ریست میشه. این کار واسه...
خود پایه ها پول آپ داخلی هستند، بازم لازمه؟
خودمم از این متعجبم!!! هر وقت تایمر وقفه میده واحد سریال هم وقفه میده!!!
لطفا برای نوشتن کدها از تگ کد (علامت #) داخل ادیتور استفاده کنید تا کد قابل خواندن باشه تا دوستان بتونن ایراد دستورتون رو پیدا کنن.:0013:
تو دیباگ ها متوجه شدم وقتی وقفه تایمر صفر میاد فلگ وقفه سریال هم فعال میشه. وقتی دیباگ میکنم تو استپ بعدی وقفه سریال پاک میشه ولی وقتی اجرا میکنم اون فلگ پاک نمیشه و باعث میشه بره تو سرویس روتین وقفه...
فکر نکنم از نویز باشه آخه هر بار که تکرار می کنم نتیجه همونه و بدون وقفه سریال به خوبی کار می کنه.
موارد آقا روح الله رو هم تست می کنم نتیجه رو می گم.
با تشکر از عزیزانی که وقت گذاشتن.
برنامه چیزی حدود 1000 خطه و گیج کننده س این قسمتی از اونه که وقتی تایمر وقفه میده وقفه سریال فعال میشه و داخل برنامه جاهایی که لازم نیست اونو غیر فعال میکنم.
void TIMER0_IRQHandler (void){...
بدون وقفه درست کار میکنه.وقتی دیباگ میکنم درست کار میکنه ولی وقتی برنامه ران میشه نمیدونم کجا گیر میکنه.
مرسی از پاسختون.
درود
من یه برنامه نوشتم که با وقفه سریال کار میکنه، وقتی این برنامه رو دیباگ میکنم درست جواب میده ولی وقتی اجراش میکنم میره یه جای برنامه گیر میکنه. کسی از دوستان میدونه مشکل از چیه؟cry::
وقتی هم...
اگه max داغ میکنه مشکل از اتصالاته. شماتیکی رو که پیاده کردین دوباره چک کنید.
من سخت افزار شما رو ندارم و با کیل شبیه سازی می کنم موردی نداره. شما قدم به قدم دیباگ کنید (f11) ببینید کجای برنامه گیر می کنه. (رجیستر استفاده شده رو هم ببینید شاید وقفه ای چیزی میاد و شما فلگش رو...
خوب مگه تقسیم مقاومتی نزاشتین که 5 ولت بشه؟ خوب این که درسته ایراد کجاست؟
من اون شوک سنسور ها رو با 5ولت راه انداختم و جواب هم گرفتم. خروجیش فک کنم چیزی حدود 4.3 ولت باشه. شما هم تست کنی بد نیست.
از توابع استاندارد sprintf استفاده کنید.
sprintf(text,"counter is : %d",counter)
مقدار کانتر بصورت رشته به پارامتر دوم اضافه شده و درون متغیر آرایه ای text ریخته می شود.
بله همونه. بریک پوینت رو داخل حلقه while بذار.
تو دیباگ کردن داخل یکی از تسک ها که فکر میکنی اجرا نمیشه یه بریک پوینت بذار بعد دیباگ کن ببین بازم روی اون خطی که گفتی گیر میکنه یا نه.
شما این برنامه رو اجرا کن ببین جواب میده یا نه.
داخل سیمولاتور کیل جواب میده؟
اون خط پست 2 رو اضافه کردین؟
از دیباگ Os support رو باز کن بعد RTX task.. رو بزن تا اجرای تسک ها رو ببینید.
دوست عزیز شما اندازه استک رو کم کردین(byte 196) و در چند اجرای اول باعث سرریز شدن استک میشه.
Task Stack Size
رو زیاد کنید مثلا بذارید رو 512 یا بیشتر.
فکر کنم هدر Retarget ایراد داره. با سیمولاتور دیباگ کردم رفت اینجا
void _sys_exit (int return_code) {
/* Endless loop. */
while (1);
}
گیر کرد، منم به جای 1، صفر نوشتم و تو سیمولاتور کیل...
قبل از
os_sys_init(task_init);
اینو بنویس
SystemInit(); /* initialize the Coretx-M3 processor */
من با ULN راه انداختم ولی باید حواست باشه که این آیسی Open-Collector هست.
البته استپر 4 سیم رو همینطوری نمیشه و باید واسش مدار طراحی کنی و لی 5و6و8 سیم رو میشه البته اگه جریان مصرفی اون رو uln...
پس از 24 ساعت تلاش بلاخره شد. :018::018:
با کیل 4.5 جواب میده ولی با کیل 4.7a جواب نمیده و میگه نسخه جیلینک کولن شده است و کیل بسته میشه.
سلام
2 ماه قبل یه جیلینک از این سایت گرفتم و تا حالا مشکلی نداشت و کار می کرد ولی از دیروز دیگه چراغش روشن نمیشه و ارور Not Recognize میده . روش های گفته شده تو این پست رو هم انجام دادم ولی SAM-BA...
این خوبه که راه حل مشکلتون رو پیدا کردین و تو سایت هم قرار دادین تا بقیه استفاده کنن.:wink:
منم قبلنا با این برخورد کرده بودم ولی پستتون رو ندیدم که جواب بدم.:sa:
اگه چند تا رله دارین یه ULN2003 کارو راحت میکنه. مدار PCB هم ساده تر میشه.:wink: