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





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









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









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





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

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2008/05/04
    12
    0

    مشكل در منبع وقفه يكم (SYS) در نرم افزار Keil

    با سلام خدمت دوستان عزيز و مديران سايت
    همونطور كه ميدونيم براي استفاده از اينتراپت تايمر هاي PIT و RTT بايد از وقفه شماره يك يا (SYS) استفاده كرد
    ولي در نرم افزار Keil هر كاري كه كردم نتونستم اين كار رو انجام بدم
    تمام تنظيمات مربوط به تايمر PIT رو انجام دادم ولي هيچ وقفه اي ايجاد نميشه لطفا راهنمايي بفرماييد
    کد:
    #include <meisam_sam7s64io.h>
    #include <meisam_delay.h>	  // chon dar lcd.c be tore dasti "meisam_delay.h" ra include karde am inja naabyed benevisim
    #include <meisam_micro_init.h>
    #include <lcd.h>
    #include <lcd.c>
    #include <stdio.h>
    int i=45;
    
    void pit_meisam_interrupt (void) __irq
    {
    	 unsigned int dm;
    	 dm=*AT91C_PITC_PIVR;
    	 dm=dm;
    
    	*AT91C_AIC_ICCR = (1 << AT91C_ID_SYS); /* Interrupt Ack*/
    	*AT91C_AIC_EOICR = 0; /* End of Interrupt*/
    	i++;
    }
    
    void pit_init()
    {
    
    *AT91C_PITC_PIMR =0x30B749E;	  // compare with RC interrupt & mck/128
    AT91C_AIC_SVR[AT91C_ID_SYS] =	(unsigned int) pit_meisam_interrupt;
    AT91C_AIC_SMR[AT91C_ID_SYS]	= 0x23;
    *AT91C_AIC_ICCR=(1<<AT91C_ID_SYS);
    *AT91C_AIC_IECR=(1<<AT91C_ID_SYS);
    
    };
    
    
    
    
    
    
    int main()
    {
    int j=45;
    unsigned char c[16];
    
    disable_watchdog();
    enable_external_reset();
    oscilators_init(1);	//0=32k internal  1=48M crystal(18432M)
    pit_init();
    
    delay(48000,1000);
    lcd_pininit(7,9,10,11,12,26,25,24,13,14); //(PA13->4lcd PA24->6lcd PA25->7lcd PA26->8lcd PA12->9lcd PA11->10lcd PA10->11lcd PA9->12lcd PA8->13lcd PA7->14lcd)
    lcd_init();
    lcd_clear();
    
    
    
    
    while(1)
    	{
    
    delay(48000,1000);
    lcd_gotoxy(0,0);
    sprintf(c,"salam: %2d %2d",i,j);
    lcd_putsf(c);
    j++;
    	}
    }
  2. #2
    2010/02/28
    شاهرود
    1,147
    20

    پاسخ : مشكل در منبع وقفه يكم (SYS) در نرم افزار Keil

    سلام برنامه رو برای RTT نوشتم
    پیوست کردم
    موفق باشی
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar 1_Int.rar (176.6 کیلو بایت, 22 نمايش)
    • نوع فایل: rar 1_Int.rar (176.6 کیلو بایت, 20 نمايش)
    زندگی یعنی امید و حرکت
    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
  3. #3
    2007/03/16
    843
    10

    پاسخ : مشكل در منبع وقفه يكم (SYS) در نرم افزار Keil

    من براي PIT اين را نوشتم :
    کد:
    //------------------------------------------------------------------------------
    /// Handler for PIT interrupt. Increments the timestamp counter.
    //------------------------------------------------------------------------------
    void ISR_Pit(void) __irq
    {
      unsigned int status;
    
      // Read the PIT status register
      status = PIT_GetStatus() & AT91C_PITC_PITS;
      if (status != 0) {
    
        // Read the PIVR to acknowledge interrupt and get number of ticks
        timestamp += (PIT_GetPIVR() >> 20);
      }
    *AT91C_AIC_EOICR = AT91C_BASE_AIC->AIC_ISR; 
    }
    
    //------------------------------------------------------------------------------
    /// Configure the periodic interval timer to generate an interrupt every
    /// millisecond.
    //------------------------------------------------------------------------------
    void ConfigurePit(void)
    {
      // Initialize the PIT to the desired frequency
      PIT_Init(PIT_PERIOD, BOARD_MCK / 1000000);
    
      // Configure interrupt on PIT
      AIC_DisableIT(AT91C_ID_SYS);
      //AIC_ConfigureIT(AT91C_ID_SYS, AT91C_AIC_PRIOR_LOWEST, ISR_Pit);
    	
    	AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE | 6;
    	AT91C_BASE_AIC->AIC_SVR[AT91C_ID_SYS] = (unsigned int) ISR_Pit;
    	// Clear interrupt
      AIC_ICCR = 1 << AT91C_ID_SYS;
      AIC_EnableIT(AT91C_ID_SYS);
      PIT_EnableIT();
    
      // Enable the pit
      PIT_Enable();
    
    }
    هر يک ميلي ثانيه يک وقفه ايجاد ميشه که مقدار در timestamp قرار مي گيره
نمایش نتایج: از 1 به 3 از 3

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

  1. مشكل كامپايل htpp_demo با keil 7
    توسط 252 در انجمن پروسسورهای ARM
    پاسخ: 1
    آخرين نوشته: 2014/10/15, 15:59
  2. مشكل وقفه در arm
    توسط soheyl_60 در انجمن ATMEL
    پاسخ: 7
    آخرين نوشته: 2013/08/16, 20:31
  3. کار نکردن وقفه در keil
    توسط ahmadelectronic در انجمن ATMEL
    پاسخ: 8
    آخرين نوشته: 2013/04/11, 12:04
  4. مشکل در زیر برنامه وقفه در keil!!!!
    توسط hossein_tomari007 در انجمن پروسسورهای ARM
    پاسخ: 3
    آخرين نوشته: 2011/11/04, 19:32
  5. مشكل در كار با وقفه ها در avr
    توسط PHONEX در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2009/01/03, 13:42

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

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

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

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

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