Показано с 1 по 10 из 18

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Глупый вопрос по ардуино

    Цитата Сообщение от edw123 Посмотреть сообщение
    Это я прочитал. А что есть "прерывание" работы кроме снятия питающего напряжения? RESET - прерывание работы? А "софтовый" перезапуск таймера?
    RESET можно грубо сравнить со снятием питания и потом его подключением.
    Про таймер не понял вопроса.

    Цитата Сообщение от edw123 Посмотреть сообщение
    Это я тоже представляю, но не знаю, где хранится величина, возвращаемая millis. Если в регистре, то значит будет обнуляться?
    в регистре и будет обнулятся при RESET

  2. #2
    Местный
    Регистрация
    10.11.2010
    Сообщений
    144
    Вес репутации
    209

    По умолчанию Re: Глупый вопрос по ардуино

    Цитата Сообщение от Chip Посмотреть сообщение
    Про таймер не понял вопроса.
    Я тут "в начале" и не совсем... Если правильно я понял, то: при WatchDog - обнулится. При RESET - обнулится. При начале нового цикла loop - НЕ обнулится?

    ПРо таймер - в библиотеке timer есть функция сброса таймера setTimer() - вот я её имел ввиду - с её помощью можно обнулить Millis()? Ну и ли по другому - как в тексте скетча сделать обнуление millis()?

  3. #3
    Пользователь
    Регистрация
    07.10.2011
    Сообщений
    23
    Вес репутации
    174

    По умолчанию Re: Глупый вопрос по ардуино

    Первая часть правильно, вторая, про таймер, неправильно.
    setTimer и библиотека timer никакого отношения к функции millis() не имеет.
    Если хочется "обнулить" millis(), то надо использовать свою переменную, записав в нее значение millis() в момент обнуления, а затем вычитать это значение из результата millis(), тогда, когда надо выполнить отсчет времени.

    примерно так:

    long t0; // глобальная переменная
    ...
    t0 = millis(); // "обнуление"
    ...
    t = millis() - t0; // получение интервала времени, с учетом обнуления
    ...

  4. #4
    Местный
    Регистрация
    10.11.2010
    Сообщений
    144
    Вес репутации
    209

    По умолчанию Re: Глупый вопрос по ардуино

    Цитата Сообщение от _msd Посмотреть сообщение
    Первая часть правильно, вторая, про таймер, неправильно.
    setTimer и библиотека timer никакого отношения к функции millis() не имеет.
    Насколько я понимаю, millis() использует при своей работе таймер. Вот его и хочется обнулить.
    Цитата Сообщение от _msd Посмотреть сообщение
    Если хочется "обнулить" millis(), то надо использовать свою переменную, записав в нее значение millis()
    Это "слишком просто" и не интересно. Интересно иметь в millis() значение в типе word, а не unsigned long и не заниматься многоразрядной арифметикой.
    Последний раз редактировалось edw123; 14.12.2011 в 22:10.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •