Фокус в том, что сначала надо сделать 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.