anotherium, ну да, оно всё понятно, всегда всё начинается с более общих методов потом к более частным...
конечно, по хорошему во всех тайм-критичных вещах лучше обращаться напрямую к железу, к регистрам разным, почитать обучалки, почитать даташит(!) что намного важнее чем обучалки так как в обучалках часто хрень, а в даташите правда, ну и там... как сконфигурировать ацп на нужную скорость, как настроить таймеры и прерывания и тд. это вначале сложно но потом когда понимаешь что к чему - не такая уж и сложность, по сути даж довольно простые вещи честно сказать, когда в голове уложатся...
типа. в чем могут быть изначально проблемы с тем подходом который щас - во-первых нет такого как "сделать чёто, если превышен порог допустим 1000". ну в смысле только накодить можно, но прерывания такого нет, то есть 100% одинакового и повторимого времени отклика никогда не будет. АЦП замеряется либо по запросу, либо крутится сам по себе (что тоже не совсем предсказуемо, но это все конфигурируется) и только тогда можно сделать вывод что чето произошло или нет, то есть нужен код постоянно проверяющий и если это высокоуровневый код с кучей всякой фигни, да еще и крутящийся например в основном цикле - о тайминге можно как бы забыть)) там всегда будет гулять...
вот таймер это другое дело, его отсчеты не зависят от того что там в проце происходит, он железный, прерывания по таймеру - тоже отлично потому что они мега точны, и запускать измерения АЦП каждый раз вручную - тоже точно, по скольку он всегда тратит на измерение одинаковое число своих тактов.
короче, точность нужна. другое дело какая - может на чёто и встроенных библиотек хватит, работает же в принципе..
что кстати круто с твоим подходом в целом на датчике холла - можно настроить пороги и скорости так, чтоб миди нота начала передаваться слегка раньше чем произойдет сам удар, ведь колотушку замеряет ещё на подлёте. и тем самым полностью убрать задержку, даже можно внести опережение, чтоб комп допустим подключенный со звуковухой (или барабанный модуль какой) который имеет отклик скажем пару миллисекунд или хз, успел среагировать и звук получить прям ИДЕАЛЬНО точно в момент удара. не знаю есть ли такая фишка у конкурирующих железок, но такое забегание вперед - эт практически машина времени
... и добавил:п.с. еще в ардуине можно разом избавиться от всего ненужного, если стереть всё что в скетче, ну полностью всё. и прописать на пустое место свои int main{}
короче оно понимает стандартный сишный код, так убирается дурацкий лаг из-за функции миллисекунд которая по-моему как раз на 1кгц работает там прерывание с таймера у неё идёт и джиттер она даёт почти на всё. ну и в целом отключается вся ардуиновская хрень, которая есть даже в пустом скетче, но вручную придется конфигурировать то что надо..
... и добавил:Я тут кстати эксперименты продолжаю. Сырой звук с бочкой снятой кабинетом и д112
мне кстати нравится, с яйцами как-то всё, звук оч объемный и куча характера... понятно конечно что там много низа и без обработки и тд, хз как оно будет сводиться, но по тому что есть довольно интересно)