PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در اینتراپت pic



Caspian1361
24-04-2010, 20:53
با سلام

یه برنامه با PIC16F887 نوشتم برای را ه اندازی Interrupt
مشکل اینجاس که وقتی اینتراپت تغییر در پورت B رو فعال می کنم، اینتراپت می گیره ولی وقتی تو روتین اینتراپت فلگ مربوط به این اینتراپت رو صفر می کنم، این دستور کار نمی کنه و روتین اینتراپت مدام تکرار می شه و میکرو از این روتین خارج نمیشه. مشکل کجاس؟
برنامه رو پایین می بینید:

hesam_elc
21-10-2010, 13:52
سلام دوست عزیز

توی دیتاشیت پیک ذکر شده برای رفع این مشکل یه بار پورت رو بخونید من هم برای راه اندازی کیپد با این مشکل مواجه بودم که بعد از کلی این ور اونور متوجه شدم اشکال چیه

void RB_isr(void)

{

char b=0;

ref_key();

b=PORTB;


}

شما دستور آخر رو بردار میبینی که مثلا یه دونه 1 میزنی اما 10 تا 1 مینویسه !

پیک یه سری دردسرهای خاص خودشو داره

توی e2prom هم همین طوره قبل از اینکه بنویسی میگن بهتره بخونیش بعد بنویسی !!

امیدوارم که مشکلت حل بشه .

موفق باشی .

amin1139
17-12-2012, 09:53
من قبلا با اینتراپت تغییر در پورت B کار کردم و لی به صورت تصادفی احتیاج به خوندن پورت b داشتم ولی چندتا نکته ی دیگه حائز اهمیت اول اینکه پول آپ های پرت b حتما حتما باید فعال باشن پس وقتی پورت B رو خروجی تعریف کردی باید روی پرت بی یک بریزی تا پول اپش فعال بشه دوم اینکه من با اسمبلی هم برای pic برنامه نوشتم اونجا باید وقتی وقفه رخ میده اولا بعضی فلگ ها خودشون صفر نمیشن پس احتیاط کن و پایان وقفه صفرش کن دوما باید وقتی وقفه رخ میده شما وقفه ی کلی رو هم خاموش کنی و آخر برنامه ی وقفه دوباره روشن کنی و اینارو باید تو این کامپایلر هم خودت بنویسی