PDA

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



ahbadr
03-12-2015, 21:31
سلام بچه ها

بنده 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 خیلی سریع جواب میداد
دوستان لطفا راهنماییم کنید خیلی به کمک احتیاج دارم

:0013::0013::0013:

mzarkoob
04-12-2015, 21:15
سلام
شما مبنا را بذارید روی اینکه روی برد جواب دهد
یک برد بگیرید و تست روی آن انجام دهید

ahbadr
05-12-2015, 01:06
متاسفانه به برد دسترسی ندارم

شما برای شبیه سازی برنامه های خودتون از چی استفاده میکنید؟

بنده هدف اصلیم این بود که با سری میکروکنترلر های stm32f407 کار کنم و شبیه سازی انجام بدم
ولی گفتم ابتدا با سری های ساده تر مثل lpc جواب بگیرم و در ادامه به stm بپردازم
ولی متاسفانه در شبیه سازی lpc هم به مشکل برخوردم

حالا بماند که stm هسته m4 داره و یه سر و گردن از این lpc هایی که دیدم بالاتره و کار کردم باهاش واقعا دشواره برای بنده

mzarkoob
05-12-2015, 10:40
اگر برد نداشته باشید کار زیادی از پیش نمی برید
در کیل بعضی میکرو ها می توان از سیمولاتور کیل استفاده کرد برای gpio و وقفه و پورت سریال، تایمر، دیدن پالس pwm تو این حد