NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2813 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 23

موضوع: راهنمایی در مورد یادگیری میکرو کنترلرهای arm

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض راهنمایی در مورد یادگیری میکرو کنترلرهای arm

    با سلام
    من برای یادگیری میکروکنترلر از AVR شروع کردم و میکرو کنترلر رو با AVR یاد گرفتم.
    تو این 13 سالی که دارم با این سری میکرو کنترلر کار میکنم تمامی موارد مربوط به اون رو یاد گرفتم و تقریبا هرچیزی که قابل پیاده سازی با اون باشه رو انجام میدم.

    جدیدا داشتم روی یک پروژه کار میکردم که بیشترین نیاز مربوط میشد به گرافیک و استفاده از ال سی دی 7 اینچ.
    بعد از کلی کلنجار رفتن متوجه شدم که با توجه به فرکانس کاری و قدرت پردازش AVR چیز خوبی از آب در نمیاد و به این نتیجه رسیدم که کم کم باید به ARM مهاجرت کنم.

    وبعد از یک سری تحقیقات روی سریهای مختلف، میکرو کنترلهای NXP سری LPC رو انتخاب کردم.
    برای شروع هم بردهای 1788 کویر و eca رو تهییه کردم(به علت داشتم کنترلر داخلی LCD). داخل cd هایی که همراه بردها هست مثالهای خوبی قرارداده شده و همگی به خوبی کار میکنن ولی برای یادگیر خیلی گنگ هستند.

    همچنین کتابهای انتشارات نیاز دانش مربوط به ARM و LPC هم تهییه کردم ولی همچنان نتونستم یک LED Blink ساده رو خودم از اول بنویسم. تقریبا تئوری میدونم باید چکار کنم ولی وقتی کدم رو مینویسم نتیجه دلخواه رو نمیده (تو این مثال چشمک زدن LED)

    از دوستان تقاضا دارم که راهنمایی کنن برای شروع یاد گیری از چه منابعی استفاده کنم.
    با تشکر.

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    میبینم که همه عزیزان برای اشتراک گذاشتن تجربیاتشون صف کشیدن

  4. #3
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    سلام ... ببین دوست عزیز ....
    اول یه بورد مثلا 1788 تهیه میکنی ... بعدش پکیج EMWIN رو رو کامپیوتر نصب میکنی ...
    حالا یکی از مثالهای EmWin رو باز کن ببین چیکار کرده ، سعی کن خودت دستکاریش کنی ....
    البته یه تاپیک هم تو همین سایت هستش که خیلی مفیده .... بچه ها اونجا خیلی زحمت کشیدن ....
    کم کم میتونی راه بیفتی ....ضمنا تو سی دی که با بورد بهت میدن مثالهای خوبی داره .... مثلا خود من تونستم با همین EmWin پروژه با SD Card و USB Flash رو آماده کنم ....
    فقط زیاد باهاش کار کن .... user Manual متابخونه EmWin هم خیلی خوبه ... خیلی کمک میکنه ...
    در پست بعدی یه فایل ویدئویی میزارم ببین ....

  5. تشکرها از این نوشته :


  6. #4
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    سلام ...
    اینم لینک دانلودی که گفته بودم ....

    پرشین گیگ
    یه مداریه که برای کنترل یک تابلو برق هستش ....
    ویرایش توسط microprocesor_2002 : 29-05-2016 در ساعت 10:35

  7. کاربران : 2 تشکر کرده اند از شما microprocesor_2002 برای ارسال این پست سودمند:


  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    در برد eca چهار ال ای دی وجو داره که به p4.15 , p4.16 , p4.17 , p4.18 متصل شده

    من برای روشن کردن led ها از کد زیر استفاده میکنم ولی اتفاقی نمیوفته دلیلش چیه؟
    کد:
    #include <LPC177x_8x.h> int main() { LPC_GPIO4->PIN = 0x00000000; LPC_GPIO4->DIR = 0xFFFFFFFF; while (1) { LPC_GPIO4->SET = 0xFFFFFFFF; } }
    ویرایش توسط alt_f4 : 30-05-2016 در ساعت 02:12

  9. #6
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    خب شما داری پورت رو فقط. صفر میکنی ِِِِِِ...
    بعدش نیازی نیست کل پورت رو صفر یا یک کنی ...
    فقط اون پین هایی که روش ال ای دی وجود داره رو یک و صفر کن
    با این دستور میتونی اونو یک کنی .....
    کد:
    Lpc_gpio4->set |= (1<<15 | 1<<16 | 1<<17 | 1 << 18);
    البته باید یه تاخیر مثلا 300 میلی ثانیه هم بزاری براش.
    ویرایش توسط microprocesor_2002 : 30-05-2016 در ساعت 00:18

  10. تشکرها از این نوشته :


  11. #7
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط microprocesor_2002 نمایش پست ها
    خب شما داری پورت رو فقط. صفر میکنی ِِِِِِ...
    بعدش نیازی نیست کل پورت رو صفر یا یک کنی ...
    فقط اون پین هایی که روش ال ای دی وجود داره رو یک و صفر کن
    با این دستور میتونی اونو یک کنی .....
    کد:
    Lpc_gpio4->set |= (1<<15 | 1<<16 | 1<<17 | 1 << 18);
    البته باید یه تاخیر مثلا 300 میلی ثانیه هم بزاری براش.
    پست قبلي رو درست كردم
    من از همون set استفده كردم اونجا به اشتباه clr نوشتم
    كل پورت هم همينطوري براي راحتي كد ممقدار دادم ولي همچنان ال ايدي روشن نميشه

  12. #8
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    قبل از ورودی کزدن پینها این کد رو بنویس ....
    LPC_SC->PCONP = (LPC_SC->PCONP & 0xFFFEFFFF) | (1UL<<15);

  13. تشکرها از این نوشته :


  14. #9
    کاربر علاقه مند mahdi89 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    مهدی رهی
    نوشته ها
    38
    تشکر
    77
    تشکر شده 51 بار در 19 پست

    پیش فرض

    سلام به دوست عزیز
    اگر میخوای در حدود 2 هفته تلاش، بتونی در حد یه شخص نرمال رو به بالا (نه ضعیف) هم رجیستر های lpcها رو شناخته باش و هم کار کردن با دیتاشیتشون رو که توی arm اسمش رو گذاشتن user.manual قلقش دستت بیاد و هم کد زدن برای نه فقط یه led blinking بلکه برای اترنت ، sd, adc, dac, tft lcd, timer, watchdog و... (تقریبا تمامی بخش ها) یاد بگیری و بتونی بنویسی یه راه حل ساده بهت پیشنهاد میکنم "استفاده از cd های آموزشی میکروکنترلر های arm سری lpc خود کویر الکترونیک" (فروشگاه همین انجمن) که این cd ها کار جناب مهندس زرکوب هستش و فوق العاده ساده بیان کرده.

    من زمانی که شروع کردم توی همون چند ساعت اول با این که آموزش برای برد lpc1768 کویرالکترونیک بود تونستم بردی که قبلا از یه جای دیگه تهیه کرده بودم (همون بردی که خود شما خریدید رو منم خریدم) و برای lpc1788 بود رو راحت بخش led هاش رو کنترل کنم.
    و توی چند ساعت بعد هم بقیه قسمت ها قلقش دستم اومد.

    یه کلام با این دوتا cd آموزش (که داری بخش مقدماتی ، تکمیلی و پیشرفته هست) شما میکرو های arm شرکت nxp سری lpc رو درک میکنی جوری که انگار سالهاست داری براشون کد میزنی.

    اینجور که من تعریف کردم خود کویر الکترونیک از محصولش تعریف نکرده بود (به منم چیزی نمیماسه و خودمم پول دادم و خریدم)

    جناب مهندس زرکوب دمتون گرم دادا
    در پناه خدا و ان شاء الله که نماز و روزه های همتون قبول باشه
    ویرایش توسط mahdi89 : 20-06-2016 در ساعت 01:53

  15. کاربران : 2 تشکر کرده اند از شما mahdi89 برای ارسال این پست سودمند:


  16. #10
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mahdi89 نمایش پست ها
    سلام به دوست عزیز
    اگر میخوای در حدود 2 هفته تلاش، بتونی در حد یه شخص نرمال رو به بالا (نه ضعیف) هم رجیستر های lpcها رو شناخته باش و هم کار کردن با دیتاشیتشون رو که توی arm اسمش رو گذاشتن user.manual قلقش دستت بیاد و هم کد زدن برای نه فقط یه led blinking بلکه برای اترنت ، sd, adc, dac, tft lcd, timer, watchdog و... (تقریبا تمامی بخش ها) یاد بگیری و بتونی بنویسی یه راه حل ساده بهت پیشنهاد میکنم "استفاده از cd های آموزشی میکروکنترلر های arm سری lpc خود کویر الکترونیک" (فروشگاه همین انجمن) که این cd ها کار جناب مهندس زرکوب هستش و فوق العاده ساده بیان کرده.

    من زمانی که شروع کردم توی همون چند ساعت اول با این که آموزش برای برد lpc1768 کویرالکترونیک بود تونستم بردی که قبلا از یه جای دیگه تهیه کرده بودم (همون بردی که خود شما خریدید رو منم خریدم) و برای lpc1788 بود رو راحت بخش led هاش رو کنترل کنم.
    و توی چند ساعت بعد هم بقیه قسمت ها قلقش دستم اومد.

    یه کلام با این دوتا cd آموزش (که داری بخش مقدماتی ، تکمیلی و پیشرفته هست) شما میکرو های arm شرکت nxp سری lpc رو درک میکنی جوری که انگار سالهاست داری براشون کد میزنی.

    اینجور که من تعریف کردم خود کویر الکترونیک از محصولش تعریف نکرده بود (به منم چیزی نمیماسه و خودمم پول دادم و خریدم)

    جناب مهندس زرکوب دمتون گرم دادا
    در پناه خدا و ان شاء الله که نماز و روزه های همتون قبول باشه
    منم به پیشنهاد شما سفارش دادم
    حالا دیگه ببینیم چی میشه

  17. تشکرها از این نوشته :


  18. #11
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    سلام به همه ...
    یه مثال از EMWIN رو رو بورد تست کنید .. بعد با کمک دیتا سیت enwin بیا فرم های ساده رو طراحی کن .... کم کم میتونی یاد بگیری .... واسه کارای معمولی میکرو همینجا میتونیم کمکت کنیم ....

  19. کاربران : 2 تشکر کرده اند از شما microprocesor_2002 برای ارسال این پست سودمند:


  20. #12
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط microprocesor_2002 نمایش پست ها
    سلام به همه ...
    یه مثال از EMWIN رو رو بورد تست کنید .. بعد با کمک دیتا سیت enwin بیا فرم های ساده رو طراحی کن .... کم کم میتونی یاد بگیری .... واسه کارای معمولی میکرو همینجا میتونیم کمکت کنیم ....
    با سلام مجدد
    من مراحل کارمو میگم ببینید کجاش ایراد داره
    من از کیل 5.17 کرک شده استفاده میکنم
    در ابتدا یک پروژه جدید ایجاد میکنم



    قسمت 1 دو گزینه وجود داره : Software Packs و Legacy Device Database [no RTE] که من Legacy Device Database [no RTE] رو انتخاب میکنم
    قسمت 2 هم که میکرو LPC1788 رو انتخاب میکنم و OK میزنم.

    در مرحله بعد :



    روی yes کلیک میکنم تا فایل Startup در محل پروژه کپی بشه

    بعد یک فایل جدید به اسم main.c به پروژه اضافه میکنم و کد زیر رو توش مینویسم
    کد:
    #include "LPC177x_8x.h"
    
    int main()
    {
        LPC_GPIO4->DIR = 0x00078000;
        LPC_GPIO4->SET = 0x00078000;
        while(1)
        {
        }
    }
    سپس فایل system_LPC177x_8x.c رو داخل فولدر پروژه کپی میکنم و توسط Manage Project Items به پروژه اضافه میکنم و در نهایت با دسته بندی فایلها پروژم به شکل زیر میشه :




    وقتی پروژه رو روی برد میریزم هیچ اتفاقی نمیافته

    وقتی برنامه رو از روی برد دیباگ میکنم همه چیز درسته و درون رجیسترهای GPIO همه بیت ها به درستی ست میشن ولی LED های روی برد روشن نمیشه.



    من از برد ECA استفاده میکنم جالب اینجاس که وقتی مثالی که داخل DVD روی برد بود رو ویرایش میکنم و همین کد که بالا گذاشتم رو اجرا میکنم هر چهار LED روی برد روشن میشن.

    ممنون میشم بگید اشکال از کجاس.
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 02.png
مشاهده: 113
حجم: 18.3 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 03.png
مشاهده: 17
حجم: 58.0 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 03.png
مشاهده: 109
حجم: 59.5 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 04.png
مشاهده: 109
حجم: 21.6 کیلو بایت  
    ویرایش توسط alt_f4 : 12-07-2016 در ساعت 13:39

  21. #13
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    مهندس شما چه برنامه ای نوشتید و انتظار دارید چه اتفاقی بیافته!؟ آیا یه برنامه نوشتید که یک پایه را ست و ریست کنه ولی نشده؟ شما که فقط یک بار یک پایه را ست کردید و دیگه افتاده در حلقه بی نهایت که کاری هم نمی کنه

  22. تشکرها از این نوشته :


  23. #14
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    مشکل حل شد
    با رجیستر iocon باید پینها رو GPIO میکردم کد رو به شکل زیر تغییر دادم درست شد.


    کد:
    #include "LPC177x_8x.h"
    
    int main()
    {
        LPC_IOCON->P4_15 = 0;
        LPC_IOCON->P4_16 = 0;
        LPC_IOCON->P4_17 = 0;
        LPC_IOCON->P4_18 = 0;
        
        LPC_GPIO4->DIR = 0x00078000;
        LPC_GPIO4->SET = 0x00078000;
        while(1)
        {
        }
    }
    - - - Updated - - -

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    مهندس شما چه برنامه ای نوشتید و انتظار دارید چه اتفاقی بیافته!؟ آیا یه برنامه نوشتید که یک پایه را ست و ریست کنه ولی نشده؟ شما که فقط یک بار یک پایه را ست کردید و دیگه افتاده در حلقه بی نهایت که کاری هم نمی کنه
    من میخواستم فقط Led های رو برد روشن بشه
    پایه های پورت 4 در حالت پیش فرض EMC هستند و باید فانکشن GPIO براشون انتخاب بشه
    در ضمن مهندس فیلم آموزشیتون خیلی خوب و روون توضیح داده شده و آدم رو تو یاد گیری خیلی جلو میندازه.
    ویرایش توسط alt_f4 : 16-07-2016 در ساعت 08:21

  24. #15
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    و این هم از برنامه Blink من که در برد ECA به خوبی کار میکنه و چهار LED روی برد رو چشمک زن میکنه

    کد:
    #include "LPC177x_8x.h"
    
    void delayMs(uint32_t ms) 
    {
      ms *= (SystemCoreClock/10000);
      while (ms--) { __nop(); __nop(); __nop(); __nop(); __nop(); __nop(); }
    }
    
    int main()
    {
        LPC_IOCON->P4_15 = 0;
        LPC_IOCON->P4_16 = 0;
        LPC_IOCON->P4_17 = 0;
        LPC_IOCON->P4_18 = 0;
        LPC_GPIO4->DIR = 0x00078000;
        while(1)
        {
            LPC_GPIO4->SET = 0x00078000;
            delayMs(1000);
            LPC_GPIO4->CLR = 0x00078000;
            delayMs(1000);
        }
    }

  25. کاربران : 2 تشکر کرده اند از شما alt_f4 برای ارسال این پست سودمند:


  26. #16
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    سلام در قسمت GPIOint یه مشکلی دارم و اون اینه که وارد روتین اینتراپت نمیشه.
    دلیلش چیه؟
    کد:
    #include "LPC177x_8x.h"
    //btn1 0.21
    
    //led1 4.15
    
    void EINT3_IRQHandler(void) 
    {
        if (LPC_GPIOINT->IO0IntStatF == (1<<21) ) //if key on p0.21 pressed
        {
            LPC_GPIO4->SET = (1<<15);
            LPC_GPIOINT->IO0IntClr =  (1<<21);      //clear GPIOint stat
        }
    }
    
    int main()
    {
        LPC_GPIO4->DIR = (1<<15);                    // p4.15 as OUTPUT (LED1)
        LPC_IOCON->P4_15 = 0x00000000;    
        
        LPC_GPIOINT->IO0IntEnF = (1<<21);    // p0.21 as GPIOInt falling edge (KEY1)
        NVIC_SetPriority(EINT3_IRQn,0);   // set HIGH Priority for external intrupt 3
        NVIC_EnableIRQ(EINT3_IRQn);                // enable external intrupt 3
        while (1)
        {
        }
    }
    اینم دیباگ از روی برد که با زدن کلید مقدار StatF تغیر میکنه
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 04.png
مشاهده: 90
حجم: 31.7 کیلو بایت  
    ویرایش توسط alt_f4 : 13-07-2016 در ساعت 13:03

  27. #17
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    آیا فکر می کنید این مثل 1768 هست که وارد EINT3_IRQHandler در وقفه gpio شود!؟
    arm wizard را باز کنید و نام وقفه را چک کنید.

  28. تشکرها از این نوشته :


  29. #18
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    آیا فکر می کنید این مثل 1768 هست که وارد EINT3_IRQHandler در وقفه gpio شود!؟
    arm wizard را باز کنید و نام وقفه را چک کنید.
    حق با شما بود
    درست شد
    کد:
    #include "LPC177x_8x.h"
    //btn1 0.21
    
    //led1 4.15
    
    void GPIO_IRQHandler(void)  
    {
        LPC_GPIO4->SET = (1<<15);
        if (LPC_GPIOINT->IO0IntStatF == (1<<21) ) //if key on p0.21 pressed
        {
            LPC_GPIO4->SET = (1<<15);
            LPC_GPIOINT->IO0IntClr =  (1<<21);      //clear GPIOint stat
        }
    }
    
    int main()
    {
        LPC_GPIO4->DIR = (1<<15);                    // p4.15 as OUTPUT (LED1)
        LPC_IOCON->P4_15 = 0x00000000;    
        LPC_GPIOINT->IO0IntEnF = (1<<21);    // p0.21 as GPIOInt falling edge (KEY1)
      NVIC_SetPriority(GPIO_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
      NVIC_EnableIRQ(GPIO_IRQn);           /* Enable GPIO Interrupt */
        while (1)
        {
        }
    }
    ویرایش توسط alt_f4 : 13-07-2016 در ساعت 13:56

  30. تشکرها از این نوشته :


  31. #19
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    برنامه ای بنویسید که در زیروال وقفه یک پایه تاگل شود.
    در عمل تست کردید ببینید چی میشه یا در سیمولاتور بوده؟

  32. تشکرها از این نوشته :


  33. #20
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2015
    نوشته ها
    22
    تشکر
    7
    تشکر شده 8 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    برنامه ای بنویسید که در زیروال وقفه یک پایه تاگل شود.
    در عمل تست کردید ببینید چی میشه یا در سیمولاتور بوده؟
    در سیمولاتور کیل وارد وقفه میشه ولی دیباگ از روی برد وارد نمیشه.
    یه برنامه نوشتم که با سه دکمه LED ها روشن میشن( با دکمه 1، ال ای دی 1 و ... ) و با دکمه پهارم LED ها خاموش میشه وقتی میزیزم روی برد به خوبی اجرا میشه ولی وقتی دیباگ میکنم وارد وقفه نمیشه.

    کد:
    #include "LPC177x_8x.h"
    
    void GPIO_IRQHandler(void)  
    {
        if (LPC_GPIOINT->IO0IntStatF == (1<<21) ) //if key on p0.21 pressed
        {
            LPC_GPIO4->SET = (1<<15);
        }
        if (LPC_GPIOINT->IO0IntStatF == (1<<22)) //if key on p0.22 pressed
        {
            LPC_GPIO4->SET = (1<<16);
        }    
        if (LPC_GPIOINT->IO0IntStatF == (1<<23)) //if key on p0.23 pressed
        {
            LPC_GPIO4->SET = (1<<17);
        }
        if (LPC_GPIOINT->IO0IntStatF == (1<<24)) //if key on p0.24 pressed 
        {
            LPC_GPIO4->CLR = (1<<16);
            LPC_GPIO4->CLR = (1<<15);
            LPC_GPIO4->CLR = (1<<17);
        }
        LPC_GPIOINT->IO0IntClr = 0xFFFFFFFF;     //clear GPIOint stat
    }
    
    int main()
    {
        LPC_GPIO4->DIR = (1<<15) | (1<<16) | (1<<17) ;        // p4.15 as OUTPUT (LED1)
        LPC_IOCON->P4_15 = 0x00000000;    
        LPC_IOCON->P4_16 = 0x00000000;    
        LPC_IOCON->P4_17 = 0x00000000;
        
        LPC_GPIOINT->IO0IntEnF = (1<<21) | (1<<22) | (1<<23) | (1<<24);    // p0.21 as GPIOInt falling edge (KEY1)
        NVIC_SetPriority(GPIO_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
        NVIC_EnableIRQ(GPIO_IRQn); 
        while (1)
        {
        }
    }
    ویرایش توسط alt_f4 : 15-07-2016 در ساعت 20:46

صفحه 1 از 2 12 آخرینآخرین

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

  1. تضاد بینایی کامپیوتر و بینایی ماشین
    توسط ROBOTICS در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 6
    آخرين نوشته: 25-12-2010, 22:02

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

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