Перейти к содержанию
    

Xmega система синхронизации

Не могу изменить регистр CLK_CTRL. Надо, что бы МК работал от внешнего кварца (8Мнz).

Регистр вообще не изменяется и не настраиваться ни на 32Mhz, ни на 32khz.

ldi R16,0xD8
STS CPU_CCP,R16
ldi R16,0b00000011
STS CLK_CTRL,R16

Что не так не делаю ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LDI        R16,0xD8       
OUT       0x34,R16       
LDI        R16,0x01       
STS       0x0040,R16

OUT быстрее на 1 такт.

С STS не укладывается в 4 такта (Within 4 instruction cycles, the application code must write the appropriate data to the protected register.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот моя рабочая подпрограмма

intRC32_init:
    lds    R16,(OSC_CTRL)
    ori    R16,$02
    sts    (OSC_CTRL),R16    ; enable intRC32

    lds    R16,(OSC_STATUS); wait intRC32 ok
    sbrs    R16,1
    rjmp    PC-3

    ldi    R16,$D8
    sts    (CPU_CCP),R16    ; enable change SYSclk
    ldi    R16,$01
    sts    (CLK_CTRL),R16    ; set SYSclk intRC32
    ret

Всё работает и укладывается :biggrin:

Вот ТУТ есть обьяснение на русском и примеры.

Мне на начальном этапе очень помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Очень помогло :)

Изменено пользователем IgorKossak
Бездумное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...