Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
376 Микроконтроллеры AVR от азов программирования... Поскольку предварительный делитель производит деление тактового сигнала центрального процессора, это приводит к замедлению всех опера ций, если, конечно, коэффициент деления не равен единице. Коэффициенты деления для всех режимов предделителя приведены в табл. 6.12. Для того, чтобы избежать случайное изменение частоты тактового генератора, при изменении значений битов CLKPS для их записи исполь зуется специальная процедура. Во-первых, установить бит разрешения изменения режимов предде лителя (CLKPCE) в единицу и одновременно все биты CLKPR сбросить в ноль. Во-вторых, в течение четырех циклов тактового сигнала записать код нужного режима в биты CLKPS. Одновременно бит CLKPCE нужно сбро сить в ноль. Перед выполнением этой операции необходимо запретить прерывания. Если же процедура обработки прерывания уже началась, необходимо дождаться ее окончания. Начальное значение битов CLKPS определяется при помощи fuse - переключателя CKDIV8. Если переключатель CKDIV8 не запрограмми рован (содержит 1), то сразу после сброса биты CLKPS будут сброшены в “ 0000 ” . Если CKDIV8 запрограммирован (содержит 0), то после системного сброса биты CLKPS устанавливаются в “ ООН ” . Это соответствует коэф фициенту деления, равному 8. Предварительный делитель можно использовать в том случае, если выбранный источник тактового сигнала имеет более высокую частоту, чем необходимо для разрабатываемого устройства. Внимание. Программным путем вы можете записать любое значение битов CLKPS независимо от значения переключателя CKDIV8. В этом слу чае уже от программы зависит правильность выбора тактовой частоты внутренних систем микроконтроллера. Микросхема поставляется с запрограммированным fuse -переключа телем CKDIV8 (т. е. его значение равно 0). Выбор режимов предварительного делителя Таблица 6.12 CLKPS3 CLKPS2 CLKPS1 CLKPSO Коэффициент деления 0 0 0 0 1 0 0 0 1 2 0 0 1 0 4 0 0 1 1 8 0 1 0 0 16 0 1 0 1 32
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==