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

موضوع: تایمر - کپچر

  1. #1
    کاربر علاقه مند 6759 آواتار ها
    تاریخ عضویت
    May 2012
    نوشته ها
    38
    تشکر
    9
    تشکر شده 16 بار در 6 پست

    Icon17 تایمر - کپچر

    سلام خسته نباشید
    این برنامه ی تایمر-مد کپچر هست
    برنامه اینه اول این که وقتی یک لبه ی بالا رونده به پایه ی cap0.1 قرار داده بشه میره به وقفه و مقادیر tc و cr1 رو باید بخونه و روی ال سی دی نمایش بده.
    واین کار هم میکنه ولی مشکل اینجاست که ( مد کپچر اینه که وقتی یک لبه ی مشخص شده به یکی از پایه های cap(در اینجا p1.27) مقدار شمرده شده در tc رو در کانال کپچر مشخص شده(در اینجاcr1)
    ذخیره کنه (یعنی این دو مقدار باید باهم برابر باشند(بعد از خونده شدن مقدار tc=0 قرار داده میشه در برنامه که از اول شمارش کنه))..........اینجا این دو مقدار فقط لحظه ای که برای اولین بار خونده میشن باهم برابرند.........در بقیه ی حالات نه!!!!
    و دوم اینکه چرا یک سری علائم پشت عدد خونده شده هست مثلا روی ال سی دی این جور نمایش میده:~5666یا %8895 یا } 79555 و ......( منظورم این علائم~%{و....) هست؟؟؟؟
    int i=0;
    int h=0;
    char buff[20];
    void TIMER0_IRQHandler (void)
    {


    h=LPC_TIM0->TC;
    i=LPC_TIM0->CR1;


    lcd_clear();
    lcd_gotoxy(1,1);
    ;(lcd_puts(i
    ;(lcd_gotoxy(2,1
    ;(lcd_puts(h
    معادل 2 ثانیه;(delay_s(20
    ;LPC_TIM0->TC=0x0
    LPC_TIM0->IR = (1UL<<0);
    }
    //------------------------------------------------
    int main(){
    //LPC_GPIO2->FIODIR = 0x01;
    LPC_TIM0->CTCR = 0x04; //cap0.1-timer
    LPC_TIM0->CCR = 0x00000028;
    LPC_TIM0->PR = 25;
    LPC_TIM0->TCR = 2; //reset
    lcd_init();
    lcd_clear();


    lcd_gotoxy(1,1);
    lcd_putsf(" 6759 ");
    delay_s(10);
    // -------------- interupt seting ----------------
    NVIC_SetPriority(TIMER0_IRQn,0);
    NVIC_EnableIRQ(TIMER0_IRQn);
    LPC_PINCON->PINSEL3 = 0x00C00000;
    LPC_TIM0->TCR = 1;
    while(1){


    }
    }

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

  3. #2
    کاربر علاقه مند 6759 آواتار ها
    تاریخ عضویت
    May 2012
    نوشته ها
    38
    تشکر
    9
    تشکر شده 16 بار در 6 پست

    پیش فرض

    مشکل نمایش نماد های عجیب غریب حل شده با عوض کردن متغیر هابه صورت:
    unsigned short i=0
    unsigned short h=0
    (حالا چه را؟؟؟؟ کسی میدونه)
    ولی برابر نبودن این دو مقدار tc و cr1 در لحظه ی اعمال پالس هنوز هضم نشده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    و اینکه موقعی که برای بار دوم یا بیشتر این دو مقدار رو میخونی و روی ال سی دی میخواهی نمایش بدی اون متغییری که مقدار tc توش ریخته شده نمایش داده نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟
    چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟
    با تشکر

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

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