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





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









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









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





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

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2011/07/31
    504
    30

    مشكل وقفه در arm

    سلام.
    توي برنامم وقتي وقفه اي رخ ميده ميكرو پس از اجراي وقفه وارد مد abort ميشود و ميكرو به اخرين مكانيكه قبل از رخ دادن وقفه بود برنميگردد.چرا؟
  2. #2
    2012/07/29
    تهران-عسلویه
    469
    22

    پاسخ : مشكل وقفه در arm

    نقل قول نوشته اصلی توسط soheyl_60
    سلام.
    توي برنامم وقتي وقفه اي رخ ميده ميكرو پس از اجراي وقفه وارد مد abort ميشود و ميكرو به اخرين مكانيكه قبل از رخ دادن وقفه بود برنميگردد.چرا؟
    وضعیت watch dog فعال است؟
    ازکجا متوجه شدید که abort می کنید؟

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

    عضویت

  3. #3
    2011/07/31
    504
    30

    پاسخ : مشكل وقفه در arm

    واچ داگ رو فعال نكردم.من توي keilآ*شبيه سازي كردم.اونجا گزينه abortآ*فعال ميشه و ميكرو ديگه به وقفه پاسخ نميده.
    نمونه كد:
    کد:
    # include <AT91SAM7X256.H>
    unsigned int ram[];
    void timer0_irq_handler(void)
    {
    unsigned int k=0;
    
    	 if((AT91C_BASE_TC0->TC_SR&0x20)==0x20)
    	 {
    	 ram[k]=AT91C_BASE_TC0->TC_RA;
    	 }
    else
    {	 
    	 ram[k]=*AT91C_TC0_RB;
    }
    k=k+1;
    }
    
    int main (void) {
    *AT91C_WDTC_WDMR=1<<15;
    *AT91C_RSTC_RMR=0XA5000001;
    //------------------------------------------
    	*AT91C_CKGR_MOR=0XF01;		 // Oscillator USED EXTERNAL CRYSTAL(01)
    	*AT91C_CKGR_PLLR=0X2903FFC;	 // F0*656(290)/252(FC)	=48 MHZ
    //--------------------------------------------------------------------------
    *AT91C_PMC_SCER=1;	      //ENABLE CLOCK MICRO
    *AT91C_PMC_MCKR=3;						  //USED FROM PLL CLOCK
    *AT91C_PMC_PCER=1<<12; 	 //ENABLE CLOCK TIMER0
    //---------------------------------------------	------------------------
    *AT91C_PIOB_PDR = 1<<23;  // DISABLE PORTB.23 AS OUT/IN PUT AND READY AS PIOA0=PORT B.23
    *AT91C_PIOB_MDER = 1<<23; // PORT IS OPEN DRAIN 
    *AT91C_PIOB_ASR=1<<23;	 //PRIPHERAL A ENABLE & PIOA0 IS PERIPHERAL A
    //------------------------------------------
    *AT91C_TC0_IER=3<<5;   //INTTRUPT LOAD RA & LOAD RB        	
    	while ((*AT91C_PIOB_PDSR&0X800000));  //UNTILE PB23 IS 1 IT'S HERE
    *AT91C_TC0_CCR = 5<<0;					  //TIMER ENABLE & START
    *AT91C_TC0_CMR=1<<2 | 0<<15 | 1<<16 | 1<<19; // CLK/1024 ;CAPTURE ENABLE ; RA LOAD AT HIGH & RB LOAD AT LOW
    
    AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0]=(unsigned int)timer0_irq_handler;
    AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0]=0X7;
    AT91C_BASE_AIC->AIC_ICCR=1<<AT91C_ID_TC0;
    AT91C_BASE_AIC->AIC_IECR=(1<<AT91C_ID_TC0);	  
    while(1){
    }
    }
  4. #4
    2012/05/30
    کرمان
    793
    15

    پاسخ : مشكل وقفه در arm

    سلام.
    در این مورد بهتره به سیمولاتور کیل اکتفا نکنی و در عمل هم تست کنی.
    سر همین وقفه چندین بار ، چند روزی سردرگم بودم.
    نگو که مشکل از کیل بود و برنامه در عمل جواب میداد.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  5. #5
    2011/07/31
    504
    30

    پاسخ : مشكل وقفه در arm

    متاسفانه توي شبيه سازي سخت افزاري هم دچار مشكل شدم.لطفا كسي ميتونه بگه اشكال برنامم چيه؟يا يه نمونه برنامه وقفه تايمر0 توي keil واسه at91 واسم بذاره ممنون ميشم.
  6. #6
    2010/02/28
    شاهرود
    1,147
    20

    پاسخ : مشكل وقفه در arm

    انواع تریگر ها رو تست کن
    مثلا این که با لبه بالا رونده باشه یا پاییم رونده
    یا اصلا سطح High باشه یا LOW چون اینا مهم اند
    من تو برنامت متوجه نشدم کجا اینو تعیین کردی :sad:
    اگه اولین باره میخای راش بندازی بهتره از تابع های آماده ای که توی lib-at91sam7x256.h هست استفاده کن
    کد:
    void TC_irq_handler(void) __irq 
    {
    	int Status;
    	
    	Status = AT91C_BASE_TC1->TC_SR;
    	Status = Status;
    	
    	
    	//AT91C_BASE_TC1->TC_IER = AT91C_TC_CPCS;
    	AT91F_AIC_AcknowledgeIt(AT91C_BASE_AIC);
    	
    	//* get Usart status register
    	
    }
    
    
    
    
    //533 with RTPRES=0x8000 is equal to 10 minute
    int main (void)
    {
    	
    	
    	
    	AT91C_BASE_TC1->TC_IER = AT91C_TC_CPCS | AT91C_TC_COVFS;
    	AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,AT91C_ID_TC1,4,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL,TC_irq_handler);
    	AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_TC1);
    این کدو رو من با تایمر جواب گرفتم
    البته بقیه تنظیمات تایمر رو باید اضافه کنی
    تو این کد با مقایسه RC میره تو وقفه
    زندگی یعنی امید و حرکت
    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
  7. #7
    2011/07/31
    504
    30

    پاسخ : مشكل وقفه در arm

    با تشكر از همه شما.مشكل حل شد.اولا بايد IRQ__ رو در ابتداي تابع وقفه اضافه ميكردم ثانيا دستور خاتمه وقفه رو در اخر خط تابع وقفه بايد مينوشتم.
    توي برنامه از تريگر نرم افزاري
    کد:
    *AT91C_TC0_CCR = 5<<0;
    استفاده كرده بودم.
    اما بايد اقرار كنم ديباگ سخت افزاري در AVRآ*خيلي قويتر از ARM هست.حالا نميدونم برداشت من اينجوري بود.يا واقعا اينجوريه.
  8. #8
    2010/02/28
    شاهرود
    1,147
    20

    پاسخ : مشكل وقفه در arm

    نقل قول نوشته اصلی توسط soheyl_60
    با تشكر از همه شما.مشكل حل شد.اولا بايد IRQ__ رو در ابتداي تابع وقفه اضافه ميكردم ثانيا دستور خاتمه وقفه رو در اخر خط تابع وقفه بايد مينوشتم.
    توي برنامه از تريگر نرم افزاري
    کد:
    *AT91C_TC0_CCR = 5<<0;
    استفاده كرده بودم.
    اما بايد اقرار كنم ديباگ سخت افزاري در AVRآ*خيلي قويتر از ARM هست.حالا نميدونم برداشت من اينجوري بود.يا واقعا اينجوريه.
    اگر __IRQ رو نزاری اصلا وارد وقفه نمیشه و اگر خاتکه وقفه رو نزاری وقفه فقط یک بار عمل میکنه و دفعه دوم دیگه وارد وقفه نمیشه
    موفق باشید
    زندگی یعنی امید و حرکت
    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
نمایش نتایج: از 1 به 8 از 8

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

  1. سوال در مورد رفع مشكل بانس وقفه و صفحه كليد
    توسط magician در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 8
    آخرين نوشته: 2014/12/11, 20:43
  2. مشكل در منبع وقفه يكم (SYS) در نرم افزار Keil
    توسط meisam.jafarian در انجمن ATMEL
    پاسخ: 2
    آخرين نوشته: 2013/08/08, 23:41
  3. مشكل با وقفه خارجي
    توسط bitaelec در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2011/01/09, 09:37
  4. مشكل در كار با وقفه ها در avr
    توسط PHONEX در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2009/01/03, 13:42
  5. مشكل در تريگر كردن وقفه
    توسط PROTEUS در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2007/02/03, 08:53

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

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

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

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

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