ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
74689 Топик полностью
MDenis2 (27.11.2006 03:01, просмотров: 1) ответил AVR на Тебе не формула красивая нужна, а другое решение - иначе будешь слышать сплошную лажу, а не чистые тона. Объясни толком, что тебе нужно получить, и почему ты таблицу делителей во флеш толкаешь
Да все просто... Мелодию записываю парами байт. Где первый байт длительность, а второй байт номер ноты. А по номеру ноты из таблицы беру двухбайтовый делитель, который гружу в регистр сравнения 16-ти битного таймера-счетчика работающего в режиме CTC. Выход сравнения выдаю на порт, настроенный в режим "togle on compare". А с порта уже снимаю меандр нужной мне частоты. Кстати, вылезла непонятка: После окончания длительности ноты останавливаю таймер. И соответсвенно в 50% случаемв получаю на выходе 1. Совершенно логично записываю в порт 0 для того что бы выдать на выход 0. Никакого эффекта. Даже если отключить выход сравнения от порта - тоже никакого эфекта. Более того, сделал так: clr temp ; out TCCR1A,temp ; Отключаем выход out TCCR1B,temp ; Останавливаем таймер PortB5Off: sbi DDRB,5 cbi PortB,5 sbic PinB,5 rjmp PortB5Off Все равно на выходе в 50% случаев единица.... Хоть кондер ставь между затвором и выходом порта... Что делать-то?