Я пытаюсь вычислить количество циклов команд и циклов задержки для HCS12. У меня есть некоторая информация о HCS12расчет циклов задержки для hcs12
HCS12 использует часы шины (часы E) в качестве времени ссылка.
- Частота часов E равна половине частоты встроенного генератора тактовых импульсов (часы, 48 МГц, E-clock, 24 МГц).
- Исполнение времен инструкции также измеряется в тактах E
Я удивляюсь, что 24MHz кристально частоты? Если это так, только половина частоты генератора используется для времени обучения CPU. Итак, следует уменьшить вдвое?
Как я могу сделать 100-миллисекундную задержку для демонстрационной платы с 24-МГц шиной часов?
Для того чтобы создать временную задержку 100 мс, необходимо повторить предыдущей последовательности команд 60000 раз [100 мс ÷ (40 ÷ 24000000) мкс = 60000]. Следующая последовательность команд создаст желаемую задержку: Есть пример, но я не понимаю, как вычисляются значения 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
спасибо за разъясняющее объяснение – snr