Вопросы с тегом «timers»

Таймеры - это аппаратные средства процессора, используемые для подсчета и измерения времени событий. Используйте этот тег для вопросов об аппаратных таймерах.

3
Использование millis () и micros () внутри подпрограммы прерывания
Документация для attachInterrupt()говорит: ... millis()полагается на количество прерываний, поэтому оно никогда не будет увеличиваться внутри ISR. Поскольку delay()для работы требуются прерывания, он не будет работать, если вызывается внутри ISR. micros()Первоначально работает, но через 1-2 мс начнет работать беспорядочно. ... Чем они micros()отличаются millis()(кроме, конечно, их точности)? Означает ли приведенное выше …

2
Являются ли указатели на функции атомными в Arduino?
Следующие фрагменты взяты из исходного кода библиотеки TimerOne : // TimerOne.h: void (*isrCallback)(); // TimerOne.cpp: ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { Timer1.isrCallback(); } // TimerOne.cpp: void TimerOne::attachInterrupt(void (*isr)(), long microseconds) { if(microseconds > 0) setPeriod(microseconds); isrCallback = isr; // register the …

1
Настройка timer3 в режиме CTC - конфликт с библиотекой сервоприводов
Я хотел бы установить таймер для вызова функции 800 раз в секунду. Я использую Arduino Mega и Timer3 с прескалером 1024. Чтобы выбрать фактор прескалера, я рассмотрел следующие шаги: Частота процессора: 16 МГц Разрешение таймера: 65536 (16 бит) Разделить частоту процессора выбранного предделителем: 16x10 ^ 6/ 1024 = 15625 Разделите …

3
Может ли кто-нибудь объяснить этот странно выглядящий код, используемый для настройки таймеров?
Глядя на эскизы, написанные другими людьми, я иногда сталкиваюсь с кодом, который выглядит примерно так: TCCR1A = 0; TCCR1B = 0; TCNT1 = 34286; TCCR1B |= (1 << CS12); TIMSK1 |= (1 << TOIE1); Все, что я знаю, - это то, что связано с таймерами / таймерами (я думаю). Как …

4
Arduino включается с таймером каждые 24 часа
В настоящее время я работаю над проектом Arduino, который отправляет мне зарядку автомобильного аккумулятора один раз в день через ESP8266. Зимой я не езжу на своей машине, и мне хотелось бы получать информацию, когда батарея падает до критического значения, чтобы я мог зарядить ее и предотвратить повреждение. Поэтому энергоэффективность важна …
9 power  timers  relay 

6
Возможна очень большая задержка ()?
Я пытаюсь открыть и закрыть маленькую дверь, которая должна открываться или закрываться каждые 12 часов. Мне было интересно, смогу ли я просто сделать небольшой зацикленный скрипт с задержкой () на 12 часов, задержкой (43 200 000 000); Я полагаю? Тем не менее, я понятия не имею, если это возможно и …


1
Необходима ли изменчивость, когда переменная доступна из> 1 ISR, но не используется совместно с ISR?
Это четко задокументированы , что , когда глобальные данные совместно с ISR и основной программой, то данные должны быть объявлены volatileдля того , чтобы видимость гарантии памяти (и , что достаточно только для данных 1 байт, требуется какой- либо большое специальные меры , чтобы гарантировать также атомарность) , Здесь у …
9 interrupt  timers  isr 

5
Как Arduino может выводить конкретную (т.е. 56 кГц) несущую частоту?
Я работаю над проектом по космической оптике для беспроводной передачи данных между двумя точками. Для этого я использую ИК-светодиод, подключенный к Arduino Uno, который пульсирует с несущей частотой 56 кГц для передатчика, и второй Arduino с модулем ИК-детектора 56 кГц для приемника. Я попытался использовать delayMicroseconds () между командами pin …

5
Могу ли я сделать задержку в микросекундах более точной?
Я пытаюсь укусить данные DMX, и это требует импульсов 4us. Не очень удачно с результатами, я проверяю, насколько хорош Arduino в задержке ... Кажется, это довольно ужасно. Вот небольшой тест, который я сделал: unsigned long ptime; void setup() { Serial.begin(9600); } void loop() { ptime = micros(); delayMicroseconds(4); Serial.println(micros() - …

2
Как обновить переменную в ISR с помощью таймеров
Я пытаюсь проверить частоту Timer3 с помощью счетчика. Значение счетчика, объявленное как volatile, увеличивается в ISR, и каждую секунду сумма отображается в основном цикле, а значение сбрасывается в ноль. Таймер был настроен правильно. (Если я выберу таймер 3 Гц, я вижу мигание светодиода) Проблема Счетчик не увеличивается. Вот вывод: Setup …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.