Какое настоящее время машинного цикла в AT89C2051 (x51)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ZugDuk 20 мая 2004 г. 04:36

В целых двух книжках написано, что если кварц 12МГц, то время машинного цикла = 1мкс. Может оно и так. Я не знаю. У меня кварц 24МГц. Логично предположить, что время машинного цикла будет 0.5мкс. Но надо же такому случиться, ЭТО НЕ ТАК.
Простая программа:
MAIN:
SETB P1.6 ;Высокий уровень на ноге 1.6
ТЫСЯЧА NOP-ов ;Один NOP = 1 машинный цикл
CLR P1.6 ;Низкий уровень на ноге 1.6
ТЫСЯЧА NOP-ов ;Один NOP = 1 машинный цикл
LJMP MAIN ;ЗАЦИКЛИВАНИЕ
Приводит к тому, что высокий уровень держится приблизительно 1.5мс и низкий уровень держится около 1.2мс. (Измерялось через SBLiveLineIn прогой CoolEdit2000). Как такое возможно, я вообще не догоняю. Еще могу понять, что высокий и низкий уровень имели бы одинаковую длительность, но с какого фига они разные. И почему такие долгие. И вообще когда я организовывал программные задержки в 10 секунд, они на самом деле получались 30 секунд, а 20 секундные на самом деле оказывались минутными. Т.е. складывается впечатление, что при кварце 24МГц эта микруха имеет время машинного цикла 1.5мкс. Вместо положенных 0.5?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru