Консультации | Измерение скорости нажатия клавиши |
|
---|---|---|
Собственно сабж. При нажатии на клавишу сначала замыкается один контакт затем другой. Нужно как то посчитать время... все это на АВРе. Пробую - нихрена не получается, сильно зависит от количества нажатых одновременно клавиш ) |
|
|
BCluster: |
|
|
Gregory: И почему надо всю клавиатуру подключать? |
|
|
AnSi: |
|
|
для "ориентировки" можно на осцилографе посмотреть, или к звуковой карте подключить |
|
|
Может надо сделать массив памяти с записью текущего состояния свободно вращающегося таймера для каждой кнопки? Только для ненажатых будет "0", а для нажатых всегда больше 0, т.е. если попадете на 0, пишите 1. Тогда при повторном нажатии контроллер сравнит текущее сост таймера и сохраненное и вычислит время пролета клавиши. Вроде быстро должно работать. Только таймер нужен длинный, так что и ячейки памяти будут двойные. При количестве кнопок 128 в 256 байт уже не уложимся, нужны еще ячейки под стек. Контроллер будет нужен другой. У вас какой? |
|
|
А зачем два байта? У ненажатой кнопки значение счётчика =0. При замкнутом первом контакте и разомкнутом втором значение счетчика увеличиватся на единицу при каждом сигнале от таймера. Если замкнуты оба контакта, значение счётчика не изменяется, если оба контакта разомкнуты - счётчик обнуляется. Только здесь надо оценить хватит ли времени на опрос и запись сотояния всех клавишь за один период таймера от длительности которого зависит точность определения времени. |
|
|
SAK: А зачем два байта? У ненажатой кнопки значение счётчика =0. При замкнутом первом контакте и разомкнутом втором значение счетчика увеличиватся на единицу при каждом сигнале от таймера. Если замкнуты оба контакта, значение счётчика не изменяется, если оба контакта разомкнуты - счётчик обнуляется. Только здесь надо оценить хватит ли времени на опрос и запись сотояния всех клавишь за один период таймера от длительности которого зависит точность определения времени. ребята, все почти так и сделано. Контроллер большое достаточно, ATMega16 |
|
|
BCluster, вот я поэтому и говорил, что сперва надо выяснить реальное время. Поскольку построение программы во многом от него зависит. Ведь, если оно составляет пол секунды, так можно и без таймера обойтись. P.S.: А не проще ли было всё-таки просто приделать МИДИ-выход? |
|
|
BCluster: считается разница тиков таймера а разницу считаешь правильно? - учитываешь что таймер при переполнении сбрасывается? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |