ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
369987 Топик полностью
Ксения (21.11.2012 20:53 - 21:02, просмотров: 709) ответил sher на ATmega88 пытался изменить значение делителя тактовой частоты процессора в ходе выполнения программы (на лету). В даташите есть рекомендация по записи реристра CLKPR – Clock Prescale Register. Поделить частоту внутреннего генератора не смог. Кто в
Фокус в том, что сначала надо сделать CLKPR=0x80, и СРАЗУ ЖЕ же за этим присвоить CLKPR=нужное_значение. Между этими двумя командами хлебало не разевать - прерывания должны быть запрещены заранее. Вместо CLKPR=0x80 можно использовать CLKPR=0x80|нужное_значение; - так, возможно, даже лучше. Лично я сбрасывала делитель, а не устанавливала его, поэтому предпочесть одно другому не могу. • Bit 7 – CLKPCE: Clock prescaler change enable The CLKPCE bit must be written to logic one to enable change of the CLKPS bits. The CLKPCE bit is only updated when the other bits in CLKPR are simultaneously written to zero. CLKPCE is cleared by hardware four cycles after it is written or when CLKPS bits are written. Rewriting the CLKPCE bit within this time-out period does neither extend the time-out period, nor clear the CLKPCE bit.