Цитата(_Артём_ @ Sep 2 2013, 20:33)

Ну, видимо работает от RC 2MHz. Смотрите Jtag-ом значение регистра CLK.CTRL, там скорей всего 0.
Спасибо за ответ. До изменения оптимизации, мне не удавалось получить ногодрыгание превышающее 8 кГц. Возможно просто PLL не работал.
Цитата
Попробуйте вставить после записи в CLK.CTRL 3-4 nop-а и только после запрещать уже не нужный генератор.
Ничего не изменилось, так же как и ожидание по while. Но судя по отладчику через JTAG бит устанавливается сразу.
Цитата
Смотрите Jtag-ом значение регистра CLK.CTRL, там скорей всего 0.
Отладчик показывает что после команды: CLK.CTRL = CLK_SCLKSEL_PLL_gc
бит 2 в CLK.CTRL установлен.
В OSC.CTRL установлены 3 и 4 биты.
В OSC.PLLCTR установлены 1, 6 и 7 биты.
Цитата
Поэтоиу запись в защищённые регистры вынести в ассемблерную функцию, которой передавать адрес и новое значение регистра CLK.CTRL.
Не подскажите код, к сожалению ассемблер изучал давно и не правда.
Переписал код,
Такой код:
Код
int main(void)
{
//PMIC.CTRL = PMIC_LOLVLEN_bm;
//TCC0.PER = 1;
PORTF.DIRSET = PIN6_bm;
while (1)
{
PORTF.OUTTGL = PIN6_bm;
}
}
дает частоту ногодрыгания 4 МГц
Такой код:
Код
int main(void)
{
PORTCFG_VPCTRLA = 5;
VPORT0_DIR = PIN6_bm;
while (1)
{
VPORT0_OUT = PIN6_bm;
VPORT0_OUT = 0;
}
}
дает частоту ногодрыгания порядка 8-9 МГц
P.S. Думаю что теперь все правильно
Сообщение отредактировал Дмитрий_Мигачев - Sep 3 2013, 05:36