سلام بچه ها
بنده IAR رو تازه شروع کردم و مبتدی هستم
یه برنامه نوشتم برای پیاده سازی وقفه خارجی 1
با پروتیوس هم شبیه سازی کردم
میکرو انتخابی هم LPC2103
ولی نتونستم از IAR جواب بگیرم. همین برنامه رو با KEIL نوشتم و تو پروتیوس هم خروجی گرفتم و جواب داد به درستی.
ولی دقیقا همون برنامه رو وقتی با IAR می نویسم نمیتونم خروجی بگیرم. برنامه مثل هم هست فقط INCLUDE میکرو ها با هم تفاوت داره
توی IAR تایمر و UART رو هم راه اندازی کردم ولی مجددا وقفه این ها رو نتونستم پیاده سازی کنم
نمیدونم کجای کار مشکل داره شاید برنامه من ایراد داره (IAR ورژن 7.4)
ببینید صرفا وقفه ها کار نمیکنه و الا قسمت های دیگه مثل GPIO و TIMER و UART کار میکنه.
یه جوری انگار اصلا وارد روال وقفه خارجی یا داخلی نمیشه
بنده برنامه وقفه خارجی شماره 1 رو اینجا میزارم
کد:
/************************************************************/
/* PROJECT NAME: Vectored Interrupt */
/* Function: */
/* Example configuration of VIC for vectored interrupt */
/* Demonstrates serving the external interrupt as a */
/* vectored interrupt */
/* Oscillator frequency 12.000 Mhz */
/* Target board Keil MCB2100 */
/************************************************************/
#include <LPC2103.H>
void EXTINTVectoredIRQ (void)__irq;
int main (void)
{
IODIR = 0x00FF0000; //Set the LED pins as outputs
IOSET = 0x00FF0000; //Clear the LED pins
PINSEL0 = 0x20000000; //Enable the EXTINT1 interrupt
VICVectCntl0 = 0x0000002F; //select a priority slot for a given interrupt
VICVectAddr0 = (unsigned)EXTINTVectoredIRQ; //pass the address of the IRQ into the VIC slot
VICIntEnable = 0x00008000; //enable interrupt
while(1)
{
; //Idle
}
}
void EXTINTVectoredIRQ (void) __irq
{
IOCLR = 0x00FF0000; //Set the LED pins
EXTINT = 0x00000002; //Clear the peripheral interrupt flag
VICVectAddr = 0x00000000; //Dummy write to signal end of interrupt
}
واسه IAR دقیقا همین کد رو استفاده کردم ولی در اولش این رو #include "iolpc2103.h" جایگزین کردم تا با IAR هماهنگ بشه.
فقط مساله ای که وجود داره اینه که حتما میخوام با IAR جواب بگیرم
لطفا راهنماییم کنید. ممنون
- - - Updated - - -
بچه ها اگه با IAR کار می کنید ممنون میشم یه برنامه ساده با وقفه اینجا بزارید
من هر کاری میکنم اصلا نمیتونم یه وفقه رو راه اندازی کنم
حتی برنامه ای نمونه ای که خود IAR داره رو وقتی خودم کامپایل میکنم تو پروتیوس جواب نمیده
وقتی مثال برنامه IAR رو کامپایل میکنم می تونم تو پروتیوس خروجی درست رو بگیرم
ولی وقتی خودم یه workspape ایجاد می کنم و تک تک فایل های اون نمونه برنامه رو به برنامه خودم اضافه می کنم و همه تنظیمات رو مشابه برنامه نمونه انجام میدم ولی باز وقتی تو پروتیوس شبیه سازی میکنم جواب نمی گیرم در حالی که فایل hex نمونه برنامه خود IAR قشنگ کار می کنه
این IAR واقعا داره اذیتم می کنه KEIL خیلی سریع جواب میداد
دوستان لطفا راهنماییم کنید خیلی به کمک احتیاج دارم