اطلاعیه

Collapse
No announcement yet.

درخواست برنامه INT0 برای سری 21

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درخواست برنامه INT0 برای سری 21

    سلام:
    من می خوام INT0 رو راه بندازم ولی نمیشه اگر مثالی در این مورد باشه کمک میکنه دوستان اگر برنامه ای دارید ممنون میشم
    اگر فایل پروتئوس هم باشه که عالیه

    #2
    پاسخ : درخواست برنامه int برای سری 21

    نوشته اصلی توسط محمد صالح
    سلام:
    من می خوام INT0 رو راه بندازم ولی نمیشه اگر مثالی در این مورد باشه کمک میکنه دوستان اگر برنامه ای دارید ممنون میشم
    اگر فایل پروتئوس هم باشه که عالیه
    به نظر من بهترین راه برای استفاده از وقفه ها استفاده از کدویزاردی هست که برای این سری نوشته شده . به آدرس زیر برو و دانلودش کن .
    http://alexan.edaboard.eu/

    دیدگاه


      #3
      پاسخ : درخواست برنامه INT0 برای سری 21

      من از این نرم افزار استفاده میکنم ولی توی پروتئوس جواب نمیده؟


      #include <LPC213x.h>

      void wait()
      {
      long int i ;
      for(i=0;i<40000;i++);
      }

      __irq void EINT0_IRQHandler(void) {

      IO0SET = 1;
      wait();
      IO0CLR = 1;
      wait();

      EXTINT = 1; /* Clear EINT0 interrupt flag */
      VICVectAddr = 0; /* Acknowledge Interrupt */
      }

      /* Default Interrupt Function: may be called when ISR is disabled */
      __irq void DefISR (void) {
      }

      int main(void)
      {


      PINSEL0=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
      IO0DIR=0x80000000; /* binary: 10000000_00000000_00000000_00000000 */
      PINSEL1=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
      PINSEL2=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
      IO1DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */

      /************************************************** ****************************
      External interrupts
      ************************************************** *****************************
      Ext. interrupt 0 mode: Edge sensitivity / Falling edge / wake on interrupt 0 is Off
      */
      EXTMODE=0x01; /* binary: 00000001 */
      EXTPOLAR=0x00; /* binary: 00000000 */
      INTWAKE |=0x0000; /* binary: 00000000_00000000 */
      EXTINT=0x01; /* clear the external interrupt flags */

      /************************************************** ****************************
      Vector interrupt initialization
      ************************************************** ****************************/

      VICVectAddr0 = (unsigned long) EINT0_IRQHandler; /* set interrupt vector 0 */
      VICVectCntl0 = ( 0x20 | 14 ); /* enable slot & use it for EINT0 Interrupt */
      VICIntEnable |= ((unsigned long)1<<14); /* Enable EINT0 Interrupt */

      VICDefVectAddr = (unsigned long) DefISR; /* un-assigned VIC interrupts */
      IO0DIR =1;

      while(1)
      {


      }

      }

      دیدگاه


        #4
        پاسخ : درخواست برنامه INT0 برای سری 21

        مدل دقیق میکروت چیه ؟

        فکر کنم باید از وقفه ی FIQ استفاده کنی .

        اگر برنامه با فایل پروتئوستم بذاری بهتر می شه کمک کرد .

        دیدگاه


          #5
          پاسخ : درخواست برنامه INT0 برای سری 21

          فکر کنم مشکل یه جای دیگست . شما PINSEL0=0x0000000C; رو نکردید .

          اگر از پین P0.1 برای اینتراپت استفاده می خواهید کنید باید حتما PINSEL0; مقدار دهی کنید اونم با 0x0000000C

          دیدگاه


            #6
            پاسخ : درخواست برنامه INT0 برای سری 21

            سلام
            PINSEL0‏ رو مقدار دادم ولی بازم نشد
            برنامه ای برای تست ندارید
            برای میکرو 2138 برنامه مینویسم

            دیدگاه


              #7
              پاسخ : درخواست برنامه INT0 برای سری 21

              همچنان منتظر هستم

              دیدگاه

              لطفا صبر کنید...
              X