سلام مهندس
لطفا فايل پروژه اي كه تغييرات رو توش اعمال كردين اينجا بذارين.
نميشه بدون بررسي كردن چيزي گفت. البته فعلا
سلام مهندس
لطفا فايل پروژه اي كه تغييرات رو توش اعمال كردين اينجا بذارين.
نميشه بدون بررسي كردن چيزي گفت. البته فعلا
_____________________________________
_____________________________________
_____________________________________
_____________________________________
خدمت اساتید عزیز سلام عرض می کنم.
در این برنامه که پیوست کردم
وقفه رابط سریال را فعال کردم وقتی کاراکتری دریافت کرد
تسک READKEY که اولویتش هم از همه بالاتر است کارش را ادامه بده و کاراکتر دریافتی را ارسال کند.
مشکل:
1.وقتی برنامه اجرا می شود (میکرو ریست می شود) تا زمانی که کاراکتری از رابط سریال دریافت نکرده مشکلی وجود ندارد و LEDها چشمک می زند ولی زمانی که کاراکتری ارسال می شود سیستم هنگ می کند.و کاراکتر هم ارسال نمی کند.
سوال:
1.اصلا در سیستم عامل RTX روش پیاده سازی وقفه چیست درست این کار را کرده ام.
سلام دوستان
کجا میشه یه آموزش جامع و کامل از این سیستم عامل پیدا کرد؟
آیا آموزش فارسی غیر از این مطالب ارائه شده وجود داره؟
اگه کسی چیز خوبی در اختیار داره لطف کنه همین جا برای همه آپلود کنه!
بازم سلام
چون کسی جواب نداد خودم اشتباهم رو متوجه شدم می گم که مابقی حواسشونو جمع کنند اشتباه من را تکرار نکنند.
استفاده از دستور
os_evt_set
به جای دستور
isr_evt_set
در وقفه ها
سلام به همگی
ضمن تشکر از اموزشهای دوستای عزیز
اگه ممکنه در باره اینکه چرا برنامه که به os_sys_init(task_init); تومثال 8led میرسه هنگ میکنه و به اولین تسک هم نمیره یه توضیحی بدید ممنون
اینم بگم بردم همون lpc2378 eke2 هستش
با بوت لودر usb هم پروگرم میکنم
ویرایش توسط vivid : 14-07-2012 در ساعت 16:13
سلام
RL_ARM کرک شده ورژن 4.13 :
rlarm413.rar
سلام
من فایل keygen را ندارمو متاسفانه لینک مورد نظر در پست شما کار نمیکنه، اگه امکانش هست مجدداً آپلود کنید یا اگر به ایمیل من بفرستید ممنونتون میشم.
kheiri.saeid@gmail.com
این سیستم عامل برای avr هم استفاده میشه
حیف...
واقعا حیف که این آموزش رها شد...
این یکی از قشنگترین آموزشهای این انجمن بوده. کار alireza9900 واقعا درسته و انشای خیلی روان و زبان ساده ای که بکار برده تحسین برانگیزه. کاش ادامه پیدامیکرد...
سلام.
اين برنامه رو نوشتم ولي نميدونم چرا فقط تسک1 اجرا ميشه !! تو تابع init هر تسکي رو که اول مينويسم فقط همون تسک اجرا ميشه مشکل از چيه؟
کد:#include <lpc23xx.h> #include <rtl.h> OS_TID tsk_ID1,tsk_ID2; __task void task1 (void); __task void task2 (void); __task void init (void); int main(){ os_sys_init(init); while(1){ } } __task void init (void){ IODIR0=0X03; IOSET0=0; os_tsk_create (task1,1); os_tsk_create (task2,1); os_tsk_delete_self(); } __task void task1 (void){ int i=0; while(1){ os_dly_wait (25); if (i==0){ IOSET0=0x01; i=1; } else{ IOCLR0=0x01; i=0; } } } __task void task2 (void){ int f=0; while(1){ os_dly_wait (50); if (f==0){ IOSET0=(1<<1); f=1; } else{ IOCLR0=(1<<1); f=0; } } }
سلام مهندس
احتمالا مشکل به خاطر این پیش میاد که اولویت اجرای هر دو تسک رو 1 گذاشتین منظورم تو این دو تا خط:
کد:os_tsk_create (task1,1); os_tsk_create (task2,1);
_____________________________________
_____________________________________
توی تنظیمات rtx یه قسمت وجود داره به نام تنظیمات زمان بندی . احتمال خیلی زیاد تنظیم اون قسمت رو از فایل کانفیگ rtx اشتباه وارد کردید . یه حالت مدیریت تسک توی سیسم عامل ها وجود داره به pre-emptive multi tasking اسپلش رو نمیدونم درست باشه یا نه . اگه اون حالت فعال باشه اون مشکلی که گفتید به وجود میاد . در این حالت شما با دستور os_task_pass باید دستور ایدل شدن تسک جاری یا انتقال به تسک بعدی رو صادر کنی .
در ضمن اولویت تسک ها باید یکسان باشه وگرنه تا زمانی که تسک با اولویت بالا تر در حالت اکتیوه تسک با اولویت پایین تر اجرا نمیشه .
در ضمن اولویت تسک ها باید یکسان باشه وگرنه تا زمانی که تسک با اولویت بالا تر در حالت اکتیوه تسک با اولویت پایین تر اجرا نمیشه .
در ضمن اولویت تسک ها باید یکسان باشه وگرنه تا زمانی که تسک با اولویت بالا تر در حالت اکتیوه تسک با اولویت پایین تر اجرا نمیشه .