اطلاعیه

Collapse
No announcement yet.

کمک واسه راه اندازی وقفه های خارجی lpc1768

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

    کمک واسه راه اندازی وقفه های خارجی lpc1768

    من الان قصد دارم از سه وقفه خارجی میکرو واسه گرفتن سیگنال استفاده کنم
    من یک مثال دارم و فقط با اون میتونم روی وقفه خارجی 3 مانور
    من از User manual میکرو یک چیزایی بدست آوردم ولی نه وقت دارم و هم زمانی واسه آزمون و خطا و از دوستان درخواست دارم که اگر در این مورد اطلاعاتی دارید در اختیارم قرار دهید

    #2
    پاسخ : کمک واسه راه اندازی وقفه های خارجی lpc1768

    ممنون از راهنمایی دوستان
    خودم با استفاده از مثال و user manual هر سه تا رو راه انداختم
    اینم کد راه اندازی هر چهار وقفه
    کد:
    LPC_PINCON->PINSEL4 |= 1 << 26;	// set P2.13 as EINT3
     LPC_SC->EXTMODE = 0x00000008;		// 	EINT3 edge trigger if EXTMODE=0 then level-sensitive
     LPC_SC->EXTPOLAR = 0;				// EINT3 is falling edge by default if EXTPOLAR=1 then
     NVIC_EnableIRQ(EINT3_IRQn);
    	
    	LPC_PINCON->PINSEL4 |= 1 << 24;	// set P2.12 as EINT2
     LPC_SC->EXTMODE = 0x00000004;		// 	EINT2 edge trigger if EXTMODE=0 then level-sensitive
     LPC_SC->EXTPOLAR = 0;				// EINT2 is falling edge by default if EXTPOLAR=1 then
     NVIC_EnableIRQ(EINT2_IRQn);
    	
    	LPC_PINCON->PINSEL4 |= 1 << 22;	// set P2.11 as EINT1
     LPC_SC->EXTMODE = 0x00000002;		// EINT1 edge trigger
     LPC_SC->EXTPOLAR = 1;				// EINT1 is rising edge by default
     NVIC_EnableIRQ(EINT1_IRQn);
    	
    	
     LPC_PINCON->PINSEL4 |= 1 << 20;	// set P2.10 as EINT0
     LPC_SC->EXTMODE = 0x00000001;		// EINT0 edge trigger
     LPC_SC->EXTPOLAR = 1;				// EINT0 is rising edge by default
     NVIC_EnableIRQ(EINT0_IRQn);
    البته زیر برنامه وقفه ها هم هست که بصورت زیر هستن
    کد:
    void EINT3_IRQHandler()					 
    {
     LPC_SC->EXTINT = 0x00000008;  
    	
     
     LED_Off();             
                
    }
    void EINT2_IRQHandler()					 
    {
     LPC_SC->EXTINT = 0x00000004;  
    	
     
     LED_Off();             
                
    }
    /**/
    void EINT1_IRQHandler()					 
    {
     LPC_SC->EXTINT = 0x00000002;  
    	
     
     LED_On();             
                
    }
    
    void EINT0_IRQHandler()					  /*INT0 interrupt if the standard was EINT1_IRQHandler ()*/
    {
    	
     LPC_SC->EXTINT = 0x00000001;	   /* clear pending interrupt     */
    	
     LED_On();             /* switch off  old LED position */
                /* switch on current LED position */
    }
    واسه فهمیدن بهتر کدها و عدد های مقابل اونها معادل انگلیسی هرد تابع رو رو داخل user manual سرچ کنید به همین راحتی موفق باشید
    این هم لینک فایل که upload کردم
    http://www.4shared.com/zip/WsBR52P1/EXTI.html

    دیدگاه


      #3
      پاسخ : کمک واسه راه اندازی وقفه های خارجی lpc1768

      سلام.
      فاصله بین شروع تاپیک تا به نتیجه رسیدنش 2 ساعت هم نشده.
      این یعنی اگه یه کچولو به خودتون زحمت بدید به راحتی میتونید به نتیجه برسید.
      ونیازی به ایجاد تاپیک جدید نیست.
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


        #4
        پاسخ : کمک واسه راه اندازی وقفه های خارجی lpc1768

        این رو موافقم
        آخه بعضی وقتها مغزم جواب نمیده گفتم شاید دوستان کمک کنند کارم سریعتر پیش بره چون من در حین کار این تقاضا رو دادم گفتم وقتم تلف نشه دیدم که اصلا سرعت خودم در جواب پیدا کردن بیشتر بود.

        دیدگاه


          #5
          پاسخ : کمک واسه راه اندازی وقفه های خارجی lpc1768

          آقایون من در برنامه بالا به یک مشکل خوردم اون هم اینه که وقفه ها رو با هم فعال کنم فقط وقفه 0 به صورت برنامه ریزی شده کار میکنه و وقفه های دیگه در یک حالت حساس به سطح کار میکنند و هیچ تغییری با دستکاری در برنامه روی حساسیت این وقفه ایجاد نمیشه
          اگر تقدم وقفه رو هم بزارم هم فرقی نمیکنه
          کد:
          NVIC_SetPriority (EINTx_IRQn,x);
          اگر دوستان تجربه ای دارند ممنون میشم در اختیار بنده بزارید.

          دیدگاه

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