ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
213107 Топик полностью
maik-vs (28.09.2010 19:20, просмотров: 191) ответил mazur на 600 тактов, это если он только импульсы считать, ты об этом не забывай. А нужно еще задачи выполнять. Например, по минимуму, вывести результат на экран. Вот и подсчитай максимальную частоту. У меня сейчас получается, начиная с прихода импульса и
Зачем лишние триггеры... Энкодер обрабатывал так (ассемблер, опрос через небольшой интервал): В регистре хранится "история фаз" - три последних состояния, всего 6 бит. принимаем значения фаз А,Б, сравниваем с последним состоянием из "истории". То же самое? выходим (9 циклов контроллера). Другое: продвигаем "историю" (6 циклов). Сравниваем историю с константами "вперёд" 1-0-2 и "назад" 2-0-1, в зависимости от результата инкрементируем/декрементируем/али ничего регистр "короткого значения" (10-12 циклов). Регистр короткого значения хранит знаковую величину, сколько прошагал энкодер за период между обработкой этой величины. Обработка происходит в другом, гораздо более медленном цикле, у меня - при индикации. Значение регистра прибавляется к (черырёхбайтовому) значению количества шагов и он сбрасывается. Если делать на прерываниях, то можно наверное чего-то и подсократить, потому что известно состояние фазы.