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

موضوع: وقفه aic، چرا برنمی گرده به برنامه اصلی؟!

  1. #1
    تازه وارد
    تاریخ عضویت
    Feb 2012
    نوشته ها
    2
    تشکر
    22
    تشکر شده 1 بار در 1 پست

    پیش فرض وقفه aic، چرا برنمی گرده به برنامه اصلی؟!

    سلام خدمت همه اساتید.
    مشکل این برنامه چیه که وقتی تایمر سرریز شد، میاد به روال وقفه ولی دوباره بر نمی گرده به برنامه اصلی و روال وقفه رو همین جوری مثل حلقه بینهایت اجرا می کنه؟!
    آیا ممکنه که اشکال از این باشه که پرچم وقفه وقتی "1" شد، چون که دیگه "1" میمونه، AIC هر لحظه که وقفه هارو چک میکنه، میبینه که باید بره تو این روال؟ اگه اینجوریه چجوری میشه صفرش کرد؟
    کد:
    #include <at91sam7s64.h>
    #include <delay.h>
    #include <pio.h>
    
    
    __irq void TC0_handler(void)
    {
    
    porta_set=0x1;
    delay_ms(500);
    porta_rst=0x1;
    delay_ms(500);
    
    *AT91C_AIC_EOICR=0x1;
    
    }
    
    int main()
    {
    
    
    porta_output=0x3;               
                                                          
    *AT91C_PMC_PCER= (1<<AT91C_ID_TC0);
    *AT91C_TC0_CMR=0x4004;
    *AT91C_TC0_CCR=0x5;
    *AT91C_TC0_IER=(1<<0);  
    
    AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0] = (unsigned int) TC0_handler;
    AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0] = 0x40;
    AT91C_BASE_AIC->AIC_ISCR = (1<<AT91C_ID_TC0);
    AT91C_BASE_AIC->AIC_IECR = (1<<AT91C_ID_TC0);
        
    while (1)
    {
    porta_set=0x2;
    delay_ms(200);
    porta_rst=0x2;
    delay_ms(200);
    
    }

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

  3. #2
    تازه وارد
    تاریخ عضویت
    Feb 2012
    نوشته ها
    2
    تشکر
    22
    تشکر شده 1 بار در 1 پست

    پیش فرض

    دوستانی هم که مثل من به همچین مشکلی برخوردند بهشون بگم که متوجه شدم که ایراد از کجا بود:
    باید در پایان روال وقفه، علاوه بر
    کد:
    *AT91C_AIC_EOICR=0x1;
    ، عبارت
    کد:
    a= *AT91C_TC0_SR;
    رو هم اضافه می کردم.

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


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

  1. برد سفارشی؟
    توسط eMicro در انجمن stm32
    پاسخ: 2
    آخرين نوشته: 03-03-2014, 13:46
  2. کدام برد آموزشی؟
    توسط koroush.badi در انجمن LPC series (NXP)
    پاسخ: 5
    آخرين نوشته: 09-12-2013, 14:31
  3. تولید ولتاژ منفی؟
    توسط pirozy در انجمن الکترونیک
    پاسخ: 10
    آخرين نوشته: 12-10-2013, 10:12
  4. کدوم امام رو بیشتر دوست داری؟
    توسط morteza_rk در انجمن گفت و گوي آزاد
    پاسخ: 9
    آخرين نوشته: 09-08-2012, 01:13
  5. Arm با اسمبلی؟!
    توسط study در انجمن مباحث کلی ARM
    پاسخ: 1
    آخرين نوشته: 31-01-2010, 21:43

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

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