Прошу помощи специалистов по "Си" - таки нужно довести до ума мою интеллектуальную мигалку. ))
tinyPOV – Yet Another AVR POV Project — Volts and Bytes
Текст текущей программы прилагаю. Всё работает отлично, но нужно сделать так, чтобы поле сообщения выводилось в порт "В" только до тех пор, пока замкнут на землю соответствующий контакт маятника. Маятник добавлен мной, и нужен для того, чтобы определять момент начала вывода строки и его направление (справа налево или слева направо - чтобы при взмахе рукой в обоих направлениях строчка оставалась читаемой).
В данный момент программа написана так, что вывод содержимого памяти в порт "В" включается в момент замыкания контакта маятника на землю, и продолжается до своего конца, уже не обращая внимания на состояние маятника. Поэтому вывод строчки никак не синхронизирован с маханием рукой, в результате чего выводимые символы "бегут в воздухе" с неконтролируемой скоростью, и лишь изредка можно прочесть слово целиком.
Предлагаю такой алгоритм решения этой проблемы:
1. Контакт INT0 маятника замкнулся на землю - начался вывод строки "слева направо"
2. Рука пользователя прошла траекторию от начала взмаха "слева направо" до его конца, и начала движение в противоположную сторону
3. Нога INT0 маятника оторвалась от земли, и будучи притянута к питанию, подала в мозги "единицу" *** - вывод строки "слева направо" прекратился
4. Замкнулся противоположный контакт маятника - INT1 - начался вывод строки "справа налево"
5. Рука прошла траекторию от начала до конца взмаха "справа налево", и начала движение в противоположную сторону
6. Нога INT1 оторвалась от земли, и будучи притянута к питанию, подала в мозги "единицу" - вывод строки "справа налево" прекратился
7. См. п."1"
__________
Лучше, конечно, включить внутреннюю подтяжку, чтобы не паять её "соплями" - ATtiny2313.
зы: Хорошо было бы ещё предусмотреть задержку миллисекунд на несколько вот в этих местах:
1. Контакт INT0 маятника замкнулся на землю - - - - - - начался вывод строки "слева направо"
Чтобы рука успела набрать скорость. Первый символ тогда не получится съёженным по горизонтали.