Arduino UNO разбушевалась

откройте код библиотеки и посмотрите. Эта задержка всегда одна и та же. Величина 255 там и близко не стояла, откуда вы ее взяли??

Нет, она разная в случает температуры и давления (у давления еще и градация). Сам посмотри. Я скриншот выше приводил.

Допускается, если делать это умеючи. Евгений как-то обьяснял, попросите у него ссылку.

Но если не понимаете - лучше Сериал в прерываниях не пользоваться, программа зависнет. Тип прерываний не имеет значения.

Мне BOOM показывал. А сейчас я её убрал из скетча. И без задержки работает.

Я ее взял из масимально возможного значения переменной типа char.

В здравом уме никто так не делает.

Спасибо.

Но это не означает, что будет работать при другом атмосферном давлении, другой температуре и тп. Эти задержки нужны для ГАРАНТИРОВАННОГО получения данных. Они составляют миллисекунды и особо ни на что не влияют.

У ТС был вопрос про температуру. В случае температуры всегда одинаковая

Их тут уже с полсотни ))

упсс… развлекайтесь

(С) Каролкофилмс (помнишь думаю такую киностудию) :smiley:

Я уже развлекся:

Просто мне мешает delay. Я хочу поместить запрос BMP180 в обработку прерывания по таймеру. Так как задержка действительно нужна, то я попытаюсь реализовать ее другим методом.

Это исключительно неверное решение. Так никто не делает. В обработчик прерывания не помещают длящиеся действия, особенно если они длятся миллисекунды (что очень много по меркам микроконтроллера).

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

  • Вы можете инициировать в прерывании начало чтения датчика, выставить флаг, после чего передать эту задачу основной программе.

  • Другой вариант - вы можете инициировать чтение датчика в одном прерывании, потом выйти из него, отсчитать по таймеру нужную задержку и закончить чтение датчика в другом прерывании

3 лайка

имейте в виду, что миллис внутри прерывания тоже не работает, так что замена делей на миллис вам ничего не даст

Не согласен. Даст, как минимум еще 5-8 новых тем на форуме… :smiley:

Спасибо. Но я так не собираюсь делать.
Засада в том, что при обработке прерывания loop приостановлен.

на то оно и “прерывание” :slight_smile: чтобы “прерывать” работу луп
Не понятно правда, чем это вам мешает.

Хотя… попробую догадаться - вы хотели бы запустить прерывание и ждать, пока счетчик миллис в loop не отсчитает нужную задержку?

1 лайк

Хотел тогда, когда писсал #99. Теперь расхотелось.

Теперь задумался над Вашим #96. Вопреки ожиданиям BOOM, новую тему открывать пока не буду. BOOM cущественно мне помог вчера.