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





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









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





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2019/11/13
    4
    0

    مشکل با وقفه gpio در lpc1768

    سلام
    من یه برنامه نوشتم که وقتی روی keypad یه دکمه فشار داده میشه، وارد وقفه میشه و یه کارهایی رو انجام میده و سپس به تابع main بر میگرده.
    حالا مشکلی که هست وقتی به تابع main برمیگرده، دیگه وقفه کار نمیکنه. درصورتی که من دستور LPC_GPIOINT->IO0IntClr = 1<<15; رو هم اجرا کرد
    ممنون میشم راهنمایی کنید
    کد برنامه:
    #include "lpc17xx.h"
    #include "lcd.h"
    #include "delay.h"
    #include "ocf_lpc176x_lib.h"
    #include "keypad.h"
    void settings(void);
    void EINT3_IRQHandler(){
    LPC_GPIOINT->IO0IntClr = 1<<15;
    LCD_DisplayString("interrupt");
    uint8_t key;
    key = KEYPAD_GetKey();
    if ( key == 83){
    settings();
    }
    }
    int main()
    {
    LPC_GPIOINT->IO0IntEnF = 1<<15;
    NVIC_SetPriority(EINT3_IRQn, 0);
    NVIC_ClearPendingIRQ(EINT3_IRQn);
    NVIC_EnableIRQ(EINT3_IRQn);
    SystemInit();
    /*Connect RS, RW, EN and data bus to PORT0.4 to PORT0.7*/
    LCD_SetUp(P0_0,P0_1,P0_2,P_NC,P_NC,P_NC,P_NC,P0_3,P0_4,P0_5,P0_6);
    LCD_Init(2,16);
    // Keypad setup
    KEYPAD_Init(P0_8,P0_9,P0_10,P0_11,P0_15,P0_16,P0_17,P0_18); // Keypad is connected to P0_8 - P0_18
    initTimer0(); //For delayMS()
    while(1)
    {
    LCD_DisplayString("main");
    delayUS(1000000);
    LCD_DisplayChar(86);
    delayUS(1000000);
    }
    }
    void settings(void){
    //LCD_GoToLine(0);
    LCD_DisplayString("settings");
    uint8_t key;
    key = KEYPAD_GetKey();
    if (key == 49){
    main();
    }else if(key == 50){
    LCD_Clear();
    while(1);
    }
    }
  2. #2
    2008/04/02
    44
    11

    پاسخ : مشکل با وقفه gpio در lpc1768

    سلامحق نداری تابع main رو از توابع دیگه صدا کنی

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    وقتی وارد وقفه میشی باید به سرعت به برنامه اصلی برگردی نوشتن روی LCD و ... اونجا جاش نیست
    یکی از راههای خوب استفاده از بیت های پرچم و ذخیره داده تو رجیستر های global هستش
    بهتره وقتی کارت تو وقفه تموم شد بهتره بنویسی IO0IntClr

نمایش نتایج: از 1 به 2 از 2

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

  1. حداکثر فرکانس GPIO برای LPC1768
    توسط miladfozuni در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2017/03/31, 10:58
  2. مشکل عملي با هر دو وقفه gpio و خارجي.
    توسط omid_2132 در انجمن NXP
    پاسخ: 9
    آخرين نوشته: 2015/09/15, 19:52
  3. خاموش كردن وقفه GPIO در LPC1788
    توسط mehdia1968 در انجمن NXP
    پاسخ: 10
    آخرين نوشته: 2015/07/16, 23:19
  4. وقفه gpio , کلید ؟؟
    توسط sma در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2015/06/29, 14:51
  5. مشکل GPIO در LPC1768
    توسط FarzadMGN در انجمن NXP
    پاسخ: 15
    آخرين نوشته: 2015/05/16, 15:02

کلمات کلیدی این موضوع

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

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

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

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