ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





  1. #1
    2012/03/17
    تبریز
    79
    26

    مشکل عملی با هر دو وقفه gpio و خارجی.

    سلام دوستان من هنگام استفاده عملی از دو وقفه اشاره شده و به کارگیری برنامه های نمونه eca و آقای زرکوب و البته تست بر روی دو برد (هدر برد lpc1768 و برد توسعه یافته lpc1768 ) متوجه شدم که برخلاف تنظیمات من که در حالت حساس فقط به یکی از لبه ها هست موقع فشار کلید و گهگاهی هم موقع دست کشیدن از کلید وارد زیرروال وقفه میشه که نباید حالت دوم اتفاق بیفته.حالا اگه قضیه گلیچ مطرحه چرا پس من تو avr اصلا همچین مشکلی نداشتم cortex که پشرفته تره.و در پایان کسی راه حلی میدونه؟
    پول پ وپول دان رو هم تست کردم و همچنین pinmode نتیجه ای نداد.
    دقت کردین تو مهمونیا یه کیوی رو وقتی با پوست میخورین چه جور نگاتون میکنن.!!!!

    هيچگاه چيزي را خوب نمي فهمي، مگر اينكه بتواني آن را براي مادربزرگت شرح دهي!((آلبرت انيشتين))
  2. #2
    2008/01/23
    402
    18
    sma

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    گلیچ رو نمیدونم چیه !
    ولی به خاطر bounce هست .

    شما تو avr با شبیه ساز کار کردید ؟ ( اخه خودم هم مشکل نداشتم ،چون فقط با شبیه ساز تست کردم :mrgreen: )
    فکر میکنم بهترین کار استفاده از یه خازن برای حذف bounce هست .
    إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)
  3. #3
    2012/03/17
    تبریز
    79
    26

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    نقل قول نوشته اصلی توسط " سید محمد "
    گلیچ رو نمیدونم چیه !
    ولی به خاطر bounce هست .

    شما تو avr با شبیه ساز کار کردید ؟ ( اخه خودم هم مشکل نداشتم ،چون فقط با شبیه ساز تست کردم :mrgreen: )
    فکر میکنم بهترین کار استفاده از یه خازن برای حذف bounce هست .
    ممنون یه فیلتر RC گذاشتم کامل حل شد :biggrin:
    دقت کردین تو مهمونیا یه کیوی رو وقتی با پوست میخورین چه جور نگاتون میکنن.!!!!

    هيچگاه چيزي را خوب نمي فهمي، مگر اينكه بتواني آن را براي مادربزرگت شرح دهي!((آلبرت انيشتين))
  4. #4
    2008/01/23
    402
    18
    sma

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    آیا این نتیجه گیری درستیه ؟
    برای استفاده از اینتراپت خارجی یا وقفه GPIO راهی به جز استفاده از rc خارجی نداریم !
    یعنی خطا به صورت نرم افزاری به هیچ وجه قابل رفع نیست .
    إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)
  5. #5
    2010/06/05
    237
    21

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    سلام،
    شما هر کاری کنی وقتی یک کلید مکانیکی زده بشه بانس به وجود میاد،که یا با تاخیر یا با فیلتر می تونید حذفش کنید!
    حالا اگر شما در وقفه خودتون تاخیر در حد 50 میلی ثانیه داشته باشید این بانس دیگه دیده نمیشه!
    برای glitch filter هم می تونید اینجا یه نگاه بندازید:
    http://****************/showthread.php?706-glitch-filter-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF%D8%9F
    هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...
  6. #6
    2008/01/23
    402
    18
    sma

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    نقل قول نوشته اصلی توسط حمید لطفعلی زاده
    سلام،
    شما هر کاری کنی وقتی یک کلید مکانیکی زده بشه بانس به وجود میاد،که یا با تاخیر یا با فیلتر می تونید حذفش کنید!
    حالا اگر شما در وقفه خودتون تاخیر در حد 50 میلی ثانیه داشته باشید این بانس دیگه دیده نمیشه!
    وقفه ما به لبه حساسه ، یا بالا رونده یا پایین رونده
    کلید هم در هنگام وصل شدن بانس ایجاد میکنه و هم در هنگام قطع شدن
    تاخیر 50 میلی اون بانس اولیه رو حذف میکنه . ولی وقتی کلید داره قطع میشه هم بانس ایجاد میشه و باز هم وقفه صادر میشه . این قسمت دوم رو چجوری میشه نرم افزاری حلش کرد ؟
    إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)
  7. #7
    2010/06/05
    237
    21

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    این دیگه بستگی به الگوریتم هایی داره که شما استفاده می کنید!
    می تونید مثلا وقفه رو دو مرحله ای کنید، در نظر بگیرید کلید پول پ هستش، شما کلید رو که میزنید لبه پایین رونده ایجاد می کنید، رها که می کنید لبه بالا رونده، شما لبه بالا رونده رو هم وقفه بدید و هیچ کاری نکنید وفقط تغییر لبه رو در وقفه تنظیم کنید.
    هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...
  8. #8
    2008/01/23
    402
    18
    sma

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    نقل قول نوشته اصلی توسط حمید لطفعلی زاده
    این دیگه بستگی به الگوریتم هایی داره که شما استفاده می کنید!
    می تونید مثلا وقفه رو دو مرحله ای کنید، در نظر بگیرید کلید پول پ هستش، شما کلید رو که میزنید لبه پایین رونده ایجاد می کنید، رها که می کنید لبه بالا رونده، شما لبه بالا رونده رو هم وقفه بدید و هیچ کاری نکنید وفقط تغییر لبه رو در وقفه تنظیم کنید.
    من نمیخوام تو لبه بالا رونده وقفه داشته باشم.
    ولی بانس باعث میشه تو لبه بالا رونده وقفه صادر بشه( دقت کنید من فقط لبه پایین رونده رو فعال کردم ). راه حل نرم افزاری چیزی به ذهنم نمیرسه !
    إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)
  9. #9
    2010/06/05
    237
    21

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    دوست عزیز شما می گین بانس در موقع رها کردن کلید باز هم لبه پایین رونده ایجاد می کنه، من میگم در لحظه رها کردن کلید اولین لبا بالا رونده هستش پس اون رو بخونید و کمی صبر کنید و بعد دوباره سیستم رو در لبه پایین رونده ست کنید.
    این راه نرم افزاریه سخت افزاری هم با یک فیلتر RC می تونید درستش کنید.
    البته راه های نرم افزاری دیگه ای هم ممکنه وجود داشته باشه.
    هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...
  10. #10
    2014/03/18
    53
    1

    پاسخ : مشکل عملی با هر دو وقفه gpio و خارجی.

    سلام
    میشه بگید که تو برنامه پایین وقتی وقفه میاد چرا ;(GPIO_SetDir(2,1<<0,1 کار نمیکنه؟
    مشکلی تو برنامه هست؟
    کد:
    #include "lpc17xx_gpio.h"
    #include "lpc17xx_pinsel.h"
    #include "lpc17xx_exti.h"
    
    uint8_t d = 50;
    
    void delay (uint32_t Time)
    {
      uint32_t i;
      
      i = 0;
      while (Time--) {
        for (i = 0; i < 5000; i++);
      }
    }
    
    
    void EINT0_IRQHandler(void)
    {
    	GPIO_SetDir(2,1<<0,1);
    	GPIO_SetValue(2,1<<0);
    	delay(100);
    	GPIO_ClearValue(2,1<<0);
    	delay(100);
     EXTI_ClearEXTIFlag(EXTI_EINT0);	
    }
    
    //*******************************************************
    int main (void)
    {	  		
     uint8_t location,d = 50;
     // ---------------- Configuration ---------------	
    //  GPIO_SetDir(2, 0xff, 1);  //LPC_GPIO2->FIODIR = 0xff;
    //  GPIO_ClearValue(2, 0x0ff); //LPC_GPIO2->FIOCLR = 0xff;
    	GPIO_SetDir(2,1<<0,1);
    	PINSEL_CFG_Type PinCfg;
    	EXTI_InitTypeDef EXTICfg;
    	
    	/* Setting P2.10 as EINT0 */
    	PinCfg.Funcnum = 1;
    	PinCfg.OpenDrain = 0;
    	PinCfg.Pinmode = 0;
    	PinCfg.Pinnum = 10;
    	PinCfg.Portnum = 2;
    	PINSEL_ConfigPin(&PinCfg);
    
    
    	/* Initialize External 0 interrupt */
    	EXTI_Init();
    	EXTICfg.EXTI_Line = EXTI_EINT0;
    	/* level sensitive */
    	EXTICfg.EXTI_Mode = EXTI_MODE_EDGE_SENSITIVE;
    	//EXTICfg.EXTI_Mode = EXTI_MODE_LEVEL_SENSITIVE;
    	EXTICfg.EXTI_polarity = EXTI_POLARITY_LOW_ACTIVE_OR_FALLING_EDGE;
    	//EXTICfg.EXTI_polarity = EXTI_POLARITY_HIGH_ACTIVE_OR_RISING_EDGE;
    	EXTI_Config(&EXTICfg);
    	
    	
     
    	
    
     NVIC_EnableIRQ(EINT0_IRQn);
    	
      while(1){
     
    	 }
    }
نمایش نتایج: از 1 به 10 از 10

موضوعات مشابه

  1. وقفه gpio , کلید ؟؟
    توسط sma در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2015/06/29, 15:51
  2. تداخل وقفه خارجی و وقفه تایمر 0
    توسط sajad7 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2014/11/22, 22:03
  3. مشکل در استفاده همزمان از دو وقفه خارجی
    توسط sadeqkiller در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2014/05/07, 09:57
  4. مشکل با وقفه خارجی در مگا 64
    توسط abritco در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2013/12/27, 15:38
  5. مشکل با وقفه خارجی
    توسط sara789 در انجمن میکروکنترلرهای AVR
    پاسخ: 11
    آخرين نوشته: 2012/07/02, 19:11

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •