اطلاعیه

Collapse
No announcement yet.

مشکل در شبیه سازی وقفه خارجی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در شبیه سازی وقفه خارجی

    سلام بچه ها

    بنده 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 جواب بگیرم

    لطفا راهنماییم کنید. ممنون

    #2
    پاسخ : مشکل در شبیه سازی وقفه خارجی

    بچه ها اگه با IAR کار می کنید ممنون میشم یه برنامه ساده با وقفه اینجا بزارید

    من هر کاری میکنم اصلا نمیتونم یه وفقه رو راه اندازی کنم

    حتی برنامه ای نمونه ای که خود IAR داره رو وقتی خودم کامپایل میکنم تو پروتیوس جواب نمیده
    وقتی مثال برنامه IAR رو کامپایل میکنم می تونم تو پروتیوس خروجی درست رو بگیرم
    ولی وقتی خودم یه workspape ایجاد می کنم و تک تک فایل های اون نمونه برنامه رو به برنامه خودم اضافه می کنم و همه تنظیمات رو مشابه برنامه نمونه انجام میدم ولی باز وقتی تو پروتیوس شبیه سازی میکنم جواب نمی گیرم در حالی که فایل hex نمونه برنامه خود IAR قشنگ کار می کنه

    این IAR واقعا داره اذیتم می کنه KEIL خیلی سریع جواب میداد
    دوستان لطفا راهنماییم کنید خیلی به کمک احتیاج دارم
    :rolleyes: :rolleyes: :rolleyes:

    دیدگاه

    لطفا صبر کنید...
    X