اطلاعیه

Collapse
No announcement yet.

pending شدن وقفه

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

    pending شدن وقفه

    سلام
    من نمیتونم از وقفه هام استفاده کنم وقفه ی تایمر و یوارت رو تست کردم موقع بروز وقفه pending میشوند در حالی که من به اولویت ها دست نزدم ...

    کد هم تقریبا کد کتاب جناب خوش باطن هستش و پیچیدی خاصی نداره ولی نمیدونم چرا وقفه هام تو صف میمونن و اجرا نمیشن
    کد:
    //In the Name of God//
    
    #include "lpc17xx.h"
    
    int main()
    {
    	LPC_GPIO0->FIODIR = 1<<26;
    	LPC_SC->PCONP |= (1 << 22);
    	LPC_TIM2->TCR = 0x02;
    	LPC_TIM2->PR = 0x04;
    	LPC_TIM2->MR0 = 0x2ffffff;
    	LPC_TIM2->MCR = 0x1;
    	LPC_TIM2->TC = 0x0;
    	NVIC_EnableIRQ(TIMER2_IRQn);
    	LPC_TIM2->TCR = 0x01;
    	LPC_GPIO0->FIOSET = 1 << 26;
    	while(1)
    	{
    		
    	}
    
    }
    
    void __irq TIMER2_IRQHandler(void)
    {
    	unsigned j;
    	LPC_TIM2->IR = 0x01;
    	LPC_GPIO0->FIOSET = 1<<26;
    	LPC_TIM2->TC = 0;
    	for(j=0;j<4320000;j++);
    	LPC_GPIO0->FIOCLR = 1<<26;
    	for(j=0;j<4320000;j++);
    	return;
    	
    }
    لازم به ذکره که وقفه دیگری active نیست تو دیباگر

    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

    #2
    پاسخ : pending شدن وقفه

    خب دوستان مشکل حل شد بعد یک هفته ...
    در برنامه keil
    اگر فایل main تون cpp هست باید اینتراپت ها رو داخل "extern "c تعریف کنید
    کد:
    "extern "c
    {
    //something
    }
    در LPCXpresso هم اگه فایل main cpp بود کار بالا رو انجام بدید ولی اگر فایل main رو .c تعریف کنیم هیچ مشکلی پیش نمیاد!


    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

    دیدگاه

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