Всем добрый день. Делаю радиоуправление на микроконтроллерах и столкнулся с проблемой: передатчик: Attiny2313 кварц 8 мгц (максимальная частота) приемник; Atmega8 ... и оказалось что у меня нет в наличии еще кварца на 8 мегагерц. Есть кучка 12 мгц и 1 шт. на 16 мегагерц. Можно ли как-то выставить в фьюзах делитель частоты на Меге8 чтобы подключить кварц на 16 мгц, а получить 8 мегагерц? Какие фьюзы выставлять?
Смысл?Просто так поделить не получиться в свойствах проекта поменяйте частоту кварца перекомпильте и все.В принципе любой кварц может подойти код на Си не привязан напрямую к тактовой частоте.
В процессоре есть свой генератор на 8 MHz. У него погрешность конечно значительно выше чем у кварца. Кроме того его желательно калибровать перед использованием. Т.е. для работы процессору кварц не нужен.
У ATmega8 нет делителя частоты, поэтому нет ни специальных фьюзов, ни регистров. У Attiny2313 максимальная частота 20 МГц. У версии 'V' 10 МГц, но это при пониженном напряжении, поэтому можно попробовать запустить на частотах до 20 МГц при питании от 5 V (хотя работа может быть не стабильной, а может и вообще не запустится). По крайней мере есть подтверждённые успешные запуски ATmega8L на 16 МГц, хотя у версии 'L' предел 8 МГц. Так что можно попробовать всё хозяйство запустить на 12 МГц, раз уж их "целая куча". Функции, связанные с подсчетом времени/задержками без использования таймеров, завязаны на тактовую частоту. Для определения значения тактовой частоты используется макрос F_CPU.
У меня Attiny2313 8 МГц внутренний генератор. Пробовал в таких вариантах: Код (C++): #define F_CPU 8000000 #define F_CPU 8000000L #define F_CPU 8000000UL Но функция Код (C++): delay(1000); длится около 3-4 секунд. Что я сделал не так?
Всем спасибо за ответы. Решил поэкспериментировать, ставил на Тиньку (передатчик) разные кварцы - от 8 до 24 МГц - Аттини2313 успешно работала на любом кварце, только чем выше частота, тем отзывчевее управление было. Оставил кварц на 24 Мгц. На Мегу8 (приемник) пробовал ставить разные кварцы (8-16 Мгц), разницы в работе не увидел. Оставил кварц на 16 МГц.
Во всех трёх случаях Вы задавали одну и ту же частоту -- задержка будет одна и та же. Остаётся понять вопрос -- "что Вы сделали не так"?