прерывания

project_vdc
Offline
Зарегистрирован: 26.08.2014

Вообще такая проблема

Внутри функции-обработчика прерывания функция delay() не будет работать; значения, возвращаемые функцией millis(), не будут увеличиваться. 

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

Можно цикл организовать, но как узнать сколько времени он будет выполняться? Не посчитаешь как в ассемблере

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Ну так пишите на асме и считайте. Что вам мешает?

project_vdc
Offline
Зарегистрирован: 26.08.2014

Не умею

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

А к чему тогда в первом посте приплели асм?
И что вообще мешает вам залить скеч и протестировать как он будет считать? Или контрольные serial.print вы тоже не умеете вставлять?

project_vdc
Offline
Зарегистрирован: 26.08.2014

Думал есть более элегантное решение

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

project_vdc пишет:

Думал есть более элегантное решение


Есть, но вы о нем не знаете, и значит его для вас нет.

project_vdc
Offline
Зарегистрирован: 26.08.2014

Вас ассемблер задел, или так, потроллить?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

project_vdc пишет:

Вас ассемблер задел, или так, потроллить?


Меня интересует почему вы сами не можете сделать как я написал выше.

toly
Offline
Зарегистрирован: 17.05.2014

Вообще сама идея делать задержки а обработчиках в принципе неправльная...может попробовать изменить дизайн, чтобы задержки ушли в основной цикл ?

inspiritus
Offline
Зарегистрирован: 17.12.2012

Нуу сериал принты чего, если миллис не работает?

Можно выставлять и ронять порт и смотреть осциллографом ( если есть)