Я пытаюсь рассчитать количество циклов команд и циклов задержки для HCS12. У меня есть информация о HCS12
HCS12 использует тактовую частоту шины (тактовую частоту E) в качестве эталона синхронизации.
- Частота тактового генератора E составляет половину частоты встроенного тактового генератора (тактовый генератор 48 МГц, E-тактовый генератор 24 МГц).
- Время выполнения инструкций также измеряется в Е тактовых циклах.
Интересно, 24 МГц - это кварцевая частота? Если это так, только половина частоты кварцевого генератора используется для команд процессора. Значит, надо делить пополам?
Как сделать задержку 100 мс для демонстрационной платы с тактовой частотой шины 24 МГц?
Чтобы создать задержку в 100 мс, нам нужно повторить предыдущую последовательность инструкций 60 000 раз [100 мс ÷ (40 ÷ 24 000 000) мкс = 60 000]. Следующая последовательность инструкций создаст желаемую задержку: Пример есть, но я не понимаю, как рассчитываются значения 60000
и 40
.
ldx #60000
loop psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
psha ; 2 E cycles
pula ; 3 E cycles
nop ; 2 E cycles
nop ; 3 E cycles
dbne x,loop