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

موضوع: راه اندازی وقفه تایمر

  1. #1
    تازه وارد
    تاریخ عضویت
    Dec 2011
    نوشته ها
    2
    تشکر
    15
    تشکر شده 2 بار در 2 پست

    Icon16 راه اندازی وقفه تایمر

    با سلام خدمت تمامی دوستان
    چند وقته به راه اندازی وقفه تایمر at91sam7s در نرم افزار keil نیاز پیدا کردم ولی تا به حال موفق نشدم. از دوستان تقاضا دارم کمکم کنند.
    با استفاده از تایمر می خوام فرکانس یک سیگنال رو اندازه بگیرم.(در واقع می خوام زمان پیکهای سیگنال ECG رو تشخیص بدم).اگه میشه راهنماییم کنید.

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


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

  4. #2
    تازه وارد
    تاریخ عضویت
    Dec 2011
    نوشته ها
    2
    تشکر
    15
    تشکر شده 2 بار در 2 پست

    پیش فرض

    بالاخره خودم یه برنامه نوشتم ولی نمیدونم چرا صفر رو روی lcd نمایش نمیده!
    فایل برنامه رو پیوست کردم.برنامه ساعت رو نوشتم.
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar watch.rar (116.1 کیلو بایت, 128 نمايش)

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


  6. #3
    تازه وارد
    تاریخ عضویت
    Jul 2016
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام دوستان من میخام وقفه arm راه اندازی کنم ولی نمیشه طبق اصول هم پیش رفتم کسی هست کمک کنه؟


    #include <LPC213X.H>

    unsigned int i;
    /////////////////////////////////// Interrupt service routine EINT0
    __irq void EINT0 (void){
    EXTINT=0x01; //clear the interrupt flag of EINT0
    FIO0SET=0x01; //set P0.0
    for(i=0;i<1200000;i++); //delay 1s
    FIO0CLR=0x01; //clear P0.0
    VICVectAddr=0; //acknowledge to end of interrupt
    }
    /////////////////////////////////// Interrupt service routine EINT1
    __irq void EINT1 (void){
    EXTINT=0x02; //clear the interrupt flag of EINT1
    FIO0SET=0x02; //set P0.1
    for(i=0;i<1200000;i++); //delay 1s
    FIO0CLR=0x02; //clear P0.1
    VICVectAddr=0; //acknowledge to end of interrupt
    }
    ///////////////////////////////////Main
    void main(void){
    SCS|=0x01; //set Fast GPIO for P0 and P1
    FIO0DIR=0x03; //set P0.0 and P0.1 as output
    PINSEL0=0xcc; //set P2.10 to EINT0, and P2.11 to EINT1
    VICIntSelect=0; //set EINT0 and EINT1 interrupts to IRQ
    VICIntEnable=3<<14; //enable EINT0 and EINT1 interrupts
    VICVectAddr14=(unsigned int)EINT0; //set address of EINT0 interrupt service routine
    VICVectAddr15=(unsigned int)EINT1; //set address of EINT1 interrupt service routine
    VICVectCntl14=0x20|1; //set priority of EINT0 to priority level 1
    VICVectCntl15=0|0x20; //set priority of EINT1 to priority level 0
    EXTMODE=0x03; //set EINT0 and EINT1 to edge sensitive
    EXTPOLAR=0x00; //set falling edge for EINT0 and EINT1
    while(1); //wait
    }

    - - - Updated - - -

    سلام دوستان من میخام وقفه arm راه اندازی کنم ولی نمیشه طبق اصول هم پیش رفتم کسی هست کمک کنه؟


    #include <LPC213X.H>

    unsigned int i;
    /////////////////////////////////// Interrupt service routine EINT0
    __irq void EINT0 (void){
    EXTINT=0x01; //clear the interrupt flag of EINT0
    FIO0SET=0x01; //set P0.0
    for(i=0;i<1200000;i++); //delay 1s
    FIO0CLR=0x01; //clear P0.0
    VICVectAddr=0; //acknowledge to end of interrupt
    }
    /////////////////////////////////// Interrupt service routine EINT1
    __irq void EINT1 (void){
    EXTINT=0x02; //clear the interrupt flag of EINT1
    FIO0SET=0x02; //set P0.1
    for(i=0;i<1200000;i++); //delay 1s
    FIO0CLR=0x02; //clear P0.1
    VICVectAddr=0; //acknowledge to end of interrupt
    }
    ///////////////////////////////////Main
    void main(void){
    SCS|=0x01; //set Fast GPIO for P0 and P1
    FIO0DIR=0x03; //set P0.0 and P0.1 as output
    PINSEL0=0xcc; //set P2.10 to EINT0, and P2.11 to EINT1
    VICIntSelect=0; //set EINT0 and EINT1 interrupts to IRQ
    VICIntEnable=3<<14; //enable EINT0 and EINT1 interrupts
    VICVectAddr14=(unsigned int)EINT0; //set address of EINT0 interrupt service routine
    VICVectAddr15=(unsigned int)EINT1; //set address of EINT1 interrupt service routine
    VICVectCntl14=0x20|1; //set priority of EINT0 to priority level 1
    VICVectCntl15=0|0x20; //set priority of EINT1 to priority level 0
    EXTMODE=0x03; //set EINT0 and EINT1 to edge sensitive
    EXTPOLAR=0x00; //set falling edge for EINT0 and EINT1
    while(1); //wait
    }

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

  1. ره اندازی smt160 با پورت موازی
    توسط M.ABDOLLAHI در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 27-04-2009, 21:34

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

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