PDA

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



masror_d
14-01-2015, 13:00
سلام من یک مدار دارم که میخام وقتی وقفه فعال شد وضعیت پورت سی ام تغییر وضعیت پیدا کنه
وقتی وقفه فعال شد حالت پایه های cمعکوس حالت قبلش بشه با این تفاوت که این بین پایه های c یک چند ثانیه ای صفر بمونن
کسی از دوستان میتونه پیشنهاد بده من برنامه زیر و نوشتم جواب نداد You can see links before reply You can see links before reply You can see links before replyمیخام مدار حافظه دار بسازم یک جورایی که با وقفه وضعیت پورت سی ذخیره بشه و بعد از طی عملیاتی روی پورت سی دوبازه بازگردانده بشه

interrupt [EXT_INT0] void ext_int0_isr(void)

{
if(PINB.1==0)
{
l++;
if (l<2)
{
g=0b00001001;
PORTC=g;
}


PORTC=0b00000000;
delay_ms(1000);
g=~g;
PORTC=g;

}

}

rozeh
14-01-2015, 17:36
قرار دادن یه تاخیر توی روتین وقفه اصلا ایده خوبی نیست.
همچنین با توجه به اولویت وقفه در 8بیتی ها این برنامه شما هیچ کاری به نظرم نمیکنه. در واقع شما توی این برنامه تون با اجرای روتین وقفه، وضعیت پینی رو تغییر می دید و 100 میلی ثانیه صبر می کنید و دوباره بر میگردید به برنامه اصلی تون توی حلقه بی نهایت. بعبارتی من برنامه شما رو ندیده میگم کار نمیکنه. بگید چیکاری می خوایید بکنید تا بهتون پیشنهاد بدیم. شاید بتونیم کمکتون کنیم. البته به طور کامل توضیح بدید. من سوالات ناقص رو حل نمیکنیم یا بهشون جواب نمیدم. اگه دیر هم کنید(برید یکسال دیگه بیاد) تقریبا همین طور خواهد بود.:0013: