Цитата(Alexey_N @ Feb 7 2017, 17:03)

То есть с хотя бы первым уровнем оптимизации я получаю честные 8 МГц тактовой, а если поставить Оптимизация = None, то работает только на 2 МГц, что бы я не заряжал в регистры OSC и CLK.
Вот код, посмотрите пожалуйста, - может быть я что-то не так делаю?:
Код
....
CPU_CCP = CCP_IOREG_gc; // protected by the configuration change protection mechanism
CLK.CTRL = 0x05; // 101- RC8MHZ (8MHz internal oscillator)
....
Защита работает следующим образом: после занесения в CCP register разрешения изменений
нужно в течении 4-х тактов процессора изменить значение регистра CLK.
Похоже при выключенной оптимизации компилятор генерирует код, который не вкладывается в отведенные 4 такта.
Перепишите эти два оператора на встроенном ассемблере или оберните через "pragma".
Пример для ИАРа:
Код
void write_CCP_gurad(void* addr,BYTE value)
{
asm ("MOVW R31:R30, R17:R16\n");
asm ("LDI R19, 216\n");
asm ("OUT 0x34, R19\n");
asm ("ST Z, R18\n");
}
write_CCP_gurad((void*)&CLK.CTRL,0x05);