اطلاعیه

Collapse
No announcement yet.

کار کردن اینتراپت در هر دو لبه

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

    کار کردن اینتراپت در هر دو لبه

    سلام
    من کد زیر ازهمین سایت گرفتم که کار با اینتراپت اما مشکل اینجاست که این اینتراپت هم با لبه بالا رونده اتفاق میفته هم پایین رونده :
    کد:
    #include <lpc17xx.h>
    #include "lpc17xx_gpio.h"
    #include "lpc17xx_nvic.h"
    
    void delay(unsigned int c){ //Delay
    while (c--); }
    
    void EINT3_IRQHandler(void){	//GPIO INT routine
    	
    if(GPIO_GetIntStatus(2,10,1)){ //if p2.10 int generated
    	GPIO_SetValue(2,0x1);
    	delay(60000000);
    	GPIO_ClearInt(2,0x400);} //Clear the p2.10 int flag
    
    if(GPIO_GetIntStatus(2,11,1)){ //if p2.11 int generated
    	GPIO_SetValue(2,0x2);
    	delay(60000000);
    	GPIO_ClearInt(2,0x800);} //Clear the p2.11 int flag
    
    }
    	
    int main(){
    	GPIO_SetDir(2,0xff,1);	// LEDs On Board Output pins	
    	NVIC_EnableIRQ(EINT3_IRQn); //enable ENT3 for GPIO INT in NVIC
    	GPIO_IntCmd(2,0xC00,1);	 // Enable P2.10 and P2.11 in falling edge
    	GPIO_ClearValue(2,0x3);
    while(1)
    {
    	GPIO_SetValue (2,0x4);
    	delay(60000000);
    	GPIO_ClearValue (2,0x4);
    	delay(60000000);
    }
    }
    ممنون میشم اگر کمکم کنید بگید مشکل کار از کجاست.

    #2
    پاسخ : کار کردن اینتراپت در هر دو لبه

    سلام،
    دوست عزیز داستان خیلی سادست.
    شما با اول با لبه مثلاً بالارونده وقفه رو کانفیگ میکنی و با اومدن وقفه، اونو روی لبه پایین حساس میکنی و دوباره که وقفه اومد حساسیت رو روی لبه بالا میبره. همین سیکل رو که ادامه بدی چیزی که میخوای پیاده میشه !

    دیدگاه


      #3
      پاسخ : کار کردن اینتراپت در هر دو لبه

      ...

      دیدگاه


        #4
        پاسخ : کار کردن اینتراپت در هر دو لبه

        نوشته اصلی توسط م.پورجبار
        سلام،
        دوست عزیز داستان خیلی سادست.
        شما با اول با لبه مثلاً بالارونده وقفه رو کانفیگ میکنی و با اومدن وقفه، اونو روی لبه پایین حساس میکنی و دوباره که وقفه اومد حساسیت رو روی لبه بالا میبره. همین سیکل رو که ادامه بدی چیزی که میخوای پیاده میشه !
        نه من چنین چیزیو نمیخوام من میخوام تو یه لبه کار کنه . اما کد بالا با اینکه قراره تو یه لبه کار کنه تو هر دو لبه کار میکنه :sad:
        ممنون از کمکتون

        دیدگاه


          #5
          پاسخ : کار کردن اینتراپت در هر دو لبه

          سلام،
          مشکل شما به خاطر bounce کلید هستش!
          که هر وقت زده میشه چندین پالس رویه پایه ایجاد میکنه!
          2راه رایج برای حل این قضیه یکی استفاده از فیلتر RC روی پین هستش و دیگری استفاده از تاخیر در حد 50 تا 100 میلی ثانیه در تابع وقفه!
          هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

          دیدگاه

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