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





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









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





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

نمایش نتایج: از 1 به 6 از 6
  1. #1
    2011/09/03
    66
    1

    کمک در مورد تایمر 1768

    سلام به همه دوستان و اساتید محترم

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

    به عبارتی دیگه تایمر مرتب چک بشه وقتی زمان تایمر به بیست میلی ثانیه رسید یکسری مراحل اجرا بشه و تایمر دوباره از اول شروع کنه و ریست بشه

    با تشکر
  2. #2
    2007/08/04
    اصفهان
    577
    5

    پاسخ : کمک در مورد تایمر 1768

    سلام
    ببینید عملکرد تایمر که مشخصه. شما تایمرتون را فعال می کنید و یک مقداری هم قبلا به رجیستر مقایسه دادید. تا شمارنده رسید به این مقدار یک وقفه می آید و به زیر روال وقفه می رود. در این زیر روال می توانید کار مربوطه را انجام دهید. توضیحات بیشتر قبلا در جاهای دیگر هم داده شده البته برای lpc2378 که دیگه خودتون باید با این میکرو تون رجیستر ها را تغییر بدید :
    http://www.iranmicro.ir/forum/showthread.php?t=5401
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  3. #3
    2011/09/03
    66
    1

    پاسخ : کمک در مورد تایمر 1768

    نقل قول نوشته اصلی توسط mahdizarkoob
    سلام
    ببینید عملکرد تایمر که مشخصه. شما تایمرتون را فعال می کنید و یک مقداری هم قبلا به رجیستر مقایسه دادید. تا شمارنده رسید به این مقدار یک وقفه می آید و به زیر روال وقفه می رود. در این زیر روال می توانید کار مربوطه را انجام دهید. توضیحات بیشتر قبلا در جاهای دیگر هم داده شده البته برای lpc2378 که دیگه خودتون باید با این میکرو تون رجیستر ها را تغییر بدید :
    http://www.iranmicro.ir/forum/showthread.php?t=5401
    ممنون از راهنماییتون
    این کد مثالهای فیلیپس هست اما بعد از شدن وقفه تایمر ریست میشه اما مجموعه دستوراتی که میخوام تو این حالت اجرا بشه رو کجا باید بزارم و چجوری من اینجاش مشکل دارم

    این هم برنامه :


    // Initialize timer 0, prescale count time of 100uS
    TIM_ConfigStruct.PrescaleOption = TIM_PRESCALE_USVAL;
    TIM_ConfigStruct.PrescaleValue = 100;

    // use channel 0, MR0
    TIM_MatchConfigStruct.MatchChannel = 0;
    // Enable interrupt when MR0 matches the value in TC register
    TIM_MatchConfigStruct.IntOnMatch = TRUE;
    //Enable reset on MR0: TIMER will reset if MR0 matches it
    TIM_MatchConfigStruct.ResetOnMatch = TRUE;
    //Stop on MR0 if MR0 matches it
    TIM_MatchConfigStruct.StopOnMatch = FALSE;
    //Toggle MR0.0 pin if MR0 matches it
    TIM_MatchConfigStruct.ExtMatchOutputType =TIM_EXTMATCH_TOGGLE;
    // Set Match value, count value of 200 (200 * 100uS = 20000us = 20 ms --> 50 Hz)
    TIM_MatchConfigStruct.MatchValue = 200 ;

    // Set configuration for Tim_config and Tim_MatchConfig
    TIM_Init(LPC_TIM0, TIM_TIMER_MODE,&TIM_ConfigStruct);
    TIM_ConfigMatch(LPC_TIM0,&TIM_MatchConfigStruc t);


    TIM_Cmd(LPC_TIM0,ENABLE );

    با تشکر
  4. #4
    2007/08/04
    اصفهان
    577
    5

    پاسخ : کمک در مورد تایمر 1768

    سلام
    ببینید شما بعد از فعال کردن تایمرتن باید یه جایی برنامتون کلاک بخوره تا تایمر بشماره. این کار با قرار دادن یک حلقه whie انجام میشه. برنامه درون این حلقه گیر میکنه تا وقفه بیاد بره در زیر روال وقفه و برگرده. در زیر روال وقفه یک شرط بذارید مثلا a=1 که قبلا a=0 بوده . حالا دیگه با یک if ساده دستورات مد نظر را بنویسید:

    کد:
    While(1) {
     If (a = 1) { 
    دستورات مد نظر
    {
    a=0;
    {
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  5. #5
    2011/09/03
    66
    1

    پاسخ : کمک در مورد تایمر 1768

    نقل قول نوشته اصلی توسط mahdizarkoob
    سلام
    ببینید شما بعد از فعال کردن تایمرتن باید یه جایی برنامتون کلاک بخوره تا تایمر بشماره. این کار با قرار دادن یک حلقه whie انجام میشه. برنامه درون این حلقه گیر میکنه تا وقفه بیاد بره در زیر روال وقفه و برگرده. در زیر روال وقفه یک شرط بذارید مثلا a=1 که قبلا a=0 بوده . حالا دیگه با یک if ساده دستورات مد نظر را بنویسید:

    کد:
    While(1) {
     If (a = 1) { 
    دستورات مد نظر
    {
    a=0;
    {
    با تشکر از توضیحاتتون

    ببینید من تا اینجاش رو متوجه شده بودم اما مشکل من جایی هست که من در داخل حلقه while اصلی برنامه دو تا حلقه for تو در تو دارم که دارن از a2d میخونن
    و میخواستم به محض اینکه وقفه ایجاد شد کار نمونه برداری تموم بشه و عمل جمع و تقسیم نمونه ها شروع بشه
    و بعد تایمر ریست بشه و بعد دوباره از اول

    میشه بگین چطور از توی زیر روال وقفه میتونم از داخل حلقه خارج بشم ؟

    ایا میشه از یک لیبل که خارج از حلقه هست استفاده کنم تا در داخل زیر روال بره به اونجا ؟ دستور اینکار چجوری هستش ؟

    با تشکر فراوان
  6. #6
    2011/09/03
    66
    1

    پاسخ : کمک در مورد تایمر 1768

    حل شد


    ممنون
نمایش نتایج: از 1 به 6 از 6

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

  1. کمک در مورد lcd کارکتری با 1768
    توسط alef در انجمن NXP
    پاسخ: 1
    آخرين نوشته: 2014/07/16, 22:13
  2. پاسخ: 3
    آخرين نوشته: 2013/10/14, 17:57
  3. پاسخ: 0
    آخرين نوشته: 2013/10/13, 14:45
  4. کمک در مورد واچ داگ 1768
    توسط mohammadde25 در انجمن NXP
    پاسخ: 0
    آخرين نوشته: 2013/09/25, 16:45
  5. فرکانس تایمر در 1768
    توسط moslem1368 در انجمن NXP
    پاسخ: 19
    آخرين نوشته: 2012/11/10, 06:36

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

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

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

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

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