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





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









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









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





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

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2012/12/21
    290
    22

    ریست کردن وقفه

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

    Hidden Content
  2. #2
    2017/03/26
    1,247
    636

    پاسخ : ریست کردن وقفه

    نقل قول نوشته اصلی توسط hossein.ahmadvand

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوستان یه برنامه نوشتم به این صورته که کلید متصل به وقفه صفر که زده میشه، یک پایه میکرو روشن میشه. بعد از پنج ثانیه خاموش میشه. بعد چهارثانیه خاموش میشه و پایه بعدی روشن میشه و روشن می مونه.
    حالا مشکل اینکه کلید ریست میکرو که زده میشه ، می خوام کل کار از سر گرفته بشه، ولی اتفاقی که میفته این است که پایه خروجی غیرفعال میشه ولی کلید متصل به وقفه دیگه کار نمی کنه.
    البته توی پروتئوس تست کردمش.
    کسی می دونه مشکل از چیه؟
    سلام شکل برنامه خودتو عوض کن چرا با ریست باید برنامه به
    حالت اول برگرده ؟؟
  3. #3
    2012/12/21
    290
    22

    پاسخ : ریست کردن وقفه

    نقل قول نوشته اصلی توسط خلبان

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام شکل برنامه خودتو عوض کن چرا با ریست باید برنامه به
    حالت اول برگرده ؟؟
    یعنی چیکارش کنم ؟ میشه توضیح بدین؟
    این هم برنامه ام :



    #include <mega32a.h>
    #include <delay.h>


    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    PORTB.0=1;


    }




    void main(void)
    {
    PORTA=(1<<PORTB0) |(1<<PORTB1)|(0<<PORTB2)|(0<<PORTB3)| (0<<PORTB4)|(0<<PORTB5)|(0<<PORTB6)|(0<<PORTB7);






    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    // INT2: Off
    GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
    MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (1<<ISC00);
    MCUCSR=(0<<ISC2);
    GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);




    #asm("sei")




    while (1)
    {


    }
    }


    ویرایش توسط hossein.ahmadvand : 2019/05/06 در ساعت 10:58
    امضاندارم. ميشه انگشت بزنم...؟

    Hidden Content
  4. #4
    2017/03/26
    1,247
    636

    پاسخ : ریست کردن وقفه

    نقل قول نوشته اصلی توسط hossein.ahmadvand

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    یعنی چیکارش کنم ؟ میشه توضیح بدین؟
    این هم برنامه ام :



    #include <mega32a.h>
    #include <delay.h>


    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    PORTB.0=1;


    }




    void main(void)
    {
    PORTA=(1<<PORTB0) |(1<<PORTB1)|(0<<PORTB2)|(0<<PORTB3)| (0<<PORTB4)|(0<<PORTB5)|(0<<PORTB6)|(0<<PORTB7);






    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    // INT2: Off
    GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
    MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (1<<ISC00);
    MCUCSR=(0<<ISC2);
    GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);




    #asm("sei")




    while (1)
    {


    }
    }


    منظور من این بود که بجای استفاده از وقفه و باتن
    برنامه رو طوری بنویسی که با دو باتن ورودی عادی
    و بدون وقفه این کار رو انجام بدید و تست کنی بعد
    اگه خواستی یک کم مشکل تر میشه با همون یک دونه
    باتن هم میشه هر دو کار رو کرد دیگه نیاز به ریست
    کردن نیست
    ویرایش توسط خلبان : 2019/05/06 در ساعت 12:59
  5. #5
    2016/06/21
    314
    96

    پاسخ : ریست کردن وقفه

    نقل قول نوشته اصلی توسط hossein.ahmadvand

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    یعنی چیکارش کنم ؟ میشه توضیح بدین؟
    این هم برنامه ام :




    #include <mega32a.h>
    #include <delay.h>


    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    PORTB.0=1;


    }




    void main(void)
    {
    PORTA=(1<<PORTB0) |(1<<PORTB1)|(0<<PORTB2)|(0<<PORTB3)| (0<<PORTB4)|(0<<PORTB5)|(0<<PORTB6)|(0<<PORTB7);






    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    // INT2: Off
    GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
    MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (1<<ISC00);
    MCUCSR=(0<<ISC2);
    GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);




    #asm("sei")




    while (1)
    {


    }
    }


    سلام دوست عزیز
    چرا از دستور
    DDRx برای تعریف خروجی کردن پایه PINB.0 استفاده نکردی؟

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

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

  1. ریست واچ داگ در زیر روال وقفه تایمر
    توسط kargahelec در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2017/10/18, 09:36
  2. ریست کردن میکرو
    توسط shabnam77 در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2015/09/07, 16:55
  3. ایجاد وقفه بوسیله پایه ریست
    توسط hamed65 در انجمن ATMEL
    پاسخ: 1
    آخرين نوشته: 2015/05/20, 22:35
  4. پاک کردن وقفه هاي ايجاد شده در حين وقفه
    توسط hamedhamidi در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2014/01/17, 07:57
  5. ریست و هنگ کردن میکرو
    توسط ahay در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2007/09/02, 12:10

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

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

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

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

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