ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
194447
Pruvet (18.05.2010 06:58, просмотров: 1702)
Возникло непонимание при доработке "чужого" кода для AT89S52. В программе используется таймер 1 как источник сигнала генератора для UART. Скорость обмена 9600 бит/сек. Таймер 1 настроен на режим 2 со значением регистра TH=0FDh; Частота резонатора 11059200 Гц. В то же время разрешено прерывание таймера 1. В этом же прерывании выполняется 3 трехцикловых микрокоманды. Насколько я понял документацию на AT89S52 для получения скорости обмена частота таймера делится на 32 и дополнительно может делиться на 2 в зависимости от бита (названия бита не помню) и в той же документации не рекомендуется одновременная работа UARTA с таймером 1 на высокой скорости обмена при разрешенном прерывании таймера 1. Вот я не могу понять с какой целью разрешено прерывание, время выполнения которого больше чем период вызова.... Когда в прерывание добавлял тестовый код выдающий меандр, то на ноге процессора частота с периодом то 200 то 600 мкс.