صفحه 2 از 3 نخستنخست 123 آخرینآخرین
نمایش نتایج: از 11 به 20 از 25
Like Tree10 لایک

موضوع: شمارش با آردوینو

  1. #11
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    یک تایمر ک ریست بشه سراغ ندارید؟

  2. #12
    Senior Member
    تاریخ عضویت
    Jan 2015
    محل سکونت
    ایران
    نوشته ها
    238
    میتونی به پایه اینتراپت وصلش کنی بعد توی تابع مربوط به اینتراپت بنویسی که متغیر مربوط به شمارنده رو ریست کنه
    باید تو کدت دستت ببری جانم

  3. #13
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    میشه بگید چطوری؟
    من الان با آردوینو 2560 کار میکنم
    پایه 2 اینتراپت صفره
    اما نمیدنم چطور فعالش کنم
    اگه کمکم کنید مرسی

  4. #14
    Senior Member
    تاریخ عضویت
    Jan 2015
    محل سکونت
    ایران
    نوشته ها
    238
    خب کافیه از دستور attachInterrupt() استفاده کنید
    نحوه استفاده از این دستور هم در لینک زیر هست:
    Arduino - AttachInterrupt
    لایک کردن

  5. #15
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    مرسی.
    من قبلا هم این صفحه رو دیده بودم اما چند تا اشکال داشتم
    اینکه چ طور میشه پایه اینتراپرو مشخص کرد که داری با اینتراپ چند کار میکنی
    یا اینکه من با استفاده از همین دستور برای 2 تا پایه که خروجی مشخصشون کرده بودم این دستور رو قرار دادم به این صورت :
    int pin = 13;
    int pinled = A0;

    void setup()
    {
    pinMode(pin, OUTPUT);
    pinMode(pinled, OUTPUT);
    attachInterrupt(0, blink, CHANGE);
    }

    void loop()
    {
    digitalWrite(pin, LOW);
    delay(1000);
    digitalWrite(pin, HIGH);
    delay(500);
    }

    void blink()
    {
    digitalWrite(pinled, LOW);
    delay(10000);
    digitalWrite(pinled, HIGH);
    delay(500);

    }
    و نتیجه ای که گرفتم این بود که پایه 13 همیشه همین طور چشمک زن کار میکرد و ایه A0 روشن بود اما وقتی پایه 2 به تغذیه وصل میشد پایه A0 هم پشمک زن کار یکرد اما سرعت روش و خاموش شدنش اصلا اون چیزی نبود که در برنامه هست.
    من میخوام که وقتی تو برنامم یک کلید خاصی روشن میشه LCD تایم رو نشون بده بعد تایم RESET بشه و دوباره شمارش شروع بشه.

  6. #16
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    دوستان تا به حال با تایمر های خود میکرو ثل تایم 1 کار کردید؟
    من از تو خود سایت آردوینو در مورد تایمر یک یک صفحه و چند تا برنامه دیدم که آخرش هم اینو نوشته بود:
    Basic Usage
    The timer is configured to repetitively measure a period of time, in microseconds. At the end of each period, an interrupt function can be run. The PWM pins can also be configured to switch during a portion of the period.
    If using TimerThree, replace "Timer1" with "Timer3".
    Configuration
    Timer1.initialize(microseconds);
    Begin using the timer. This function must be called first. "microseconds" is the period of time the timer takes.
    Timer1.setPeriod(microseconds);
    Set a new period after the library is already initialized.
    Run Control
    Timer1.start();
    Start the timer, beginning a new period.
    Timer1.stop();
    Stop the timer.
    Timer1.restart();

    با توجه ب این توصیحات این تایمر هم stop داره هم reset اما من نمیدونم چطور باید ازش استفاده کنم
    یعنی نمیدونم این پایه رو چطور رو lcd نمایش بدم
    لطفا اگه میدونید کمکم کنید
    مرسی
    ویرایش توسط ss13 : 05-28-2015 در ساعت 09:18 AM

  7. #17
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    واقعا هیچ کس اینجا نمیتونه با آردوینو یک ساعت روی lcd طراحی کنه که reset داشته باشه؟
    یک توضیح مختصری هم از برنامه بدید ممنون میشم.

  8. #18
    Senior Member
    تاریخ عضویت
    Jan 2015
    محل سکونت
    ایران
    نوشته ها
    238
    سلام یه سری به لینک زیر بزنید:
    Arduino 101: Timers and Interrupts | Let's Make Robots!
    لایک کردن

  9. #19
    Member
    تاریخ عضویت
    Feb 2015
    نوشته ها
    42
    مرسی از معرفی این سایت
    چون با رجیستر ها مقدار دهی انجام داده بهتر میشه برنامه رو درک کرد
    اما این برنامه رو چط.ر میشه روی lcd نمایش داد؟
    مثلا برنامه زیر روچطور در lcdنمایش بدم؟
    #define ledPin 13

    void setup()
    {
    pinMode(ledPin, OUTPUT);

    // initialize timer1
    noInterrupts(); // disable all interrupts
    TCCR1A = 0;
    TCCR1B = 0;
    TCNT1 = 0;

    OCR1A = 31250; // compare match register 16MHz/256/2Hz
    TCCR1B |= (1 << WGM12); // CTC mode
    TCCR1B |= (1 << CS12); // 256 prescaler
    TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt
    interrupts(); // enable all interrupts
    }

    ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
    {
    digitalWrite(ledPin, digitalRead(ledPin) ^ 1); // toggle LED pin
    }

    void loop()
    {
    // your program here...
    }

    یک سوال دیگه هم داشتم:
    این خط چطور رجیستر timsk رو مقدار دهی کرده؟
    TIMSK1 |= (1 << OCIE1A);
    لایک کردن

  10. #20
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    16
    سلام در مطلب زیر آوزش کار با تایمر کانتر را قرار دادم

    بخش 1



    بخش 2

صفحه 2 از 3 نخستنخست 123 آخرینآخرین

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

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

SEO by vBSEO