Не проходит у меня снятие защиты в CCP:
Код
CCP = 0xD8;
CLK.CTRL = 0x04;
в IOView видно что CLK.CTRL весь в нулях.
Скопипастил у
rubic (спасибо ему ) его пример с замысловатым CCPWrite:
Код
void CCPWrite( volatile uint8_t * address, uint8_t value )
{
volatile uint8_t * tmpAddr = address;
asm volatile(
"movw r30, %0" "\n\t"
"ldi r16, %2" "\n\t"
"out %3, r16" "\n\t"
"st Z, %1" "\n\t"
:
: "r" (tmpAddr), "r" (value), "M" (CCP_IOREG_gc), "i" (&CCP)
: "r16", "r30", "r31"
);
}
и сразу же все заработало.
Неужели без ассемблерных вставок код не успевает за 4 цикла прописать CLK.CTRL ?
Компилячу в AVR Studio 5 его gcc.