Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Формирование временных интервалов без таймера



Иногда Таймер 0 (TCNT0) может потребоваться для других целей (для подсчета импульсов на выводе T0/PD4), Сформируем временные интервалы без использования таймера. Каждая команда выполняется вполне определенное время поэтому, используя написанные соответствующим образом циклы, можно формировать задержки с такой же точностью, что и при использовании Таймера 0. Единственным недостатком такого подхода является то, что в отличие от Таймера 0 цикл нельзя прерывать (по нажатию кнопки), иначе длительность получаемой задержки будет больше требуемой.

В основе этого способа лежит определение количества тактов, которое требуется пропустить, и постепенное уменьшение этого значения до нуля. Если это число больше 255 (что бывает практически всегда), то возникают определенные проблемы. В этом случае необходимо распределить это число по нескольким регистрам и последовательно их обрабатывать. Младший байт при этом декрементируется до тех пор, пока его значение не изменится с 00 на FF (при этом устанавливается флаг переноса), затем декрементируется следующий по порядку старший байт и т.д.

Определим, сколько тактов потребуется для формирования заданной задержки. Для секундной задержки при использовании резонатора на 4 МГц нам потребуется «убить» 4 миллиона тактов. Цикл, который мы напишем, будет выполняться за «х» тактов.

1. Формируем задержку длительностью , соответственно х = 5. За тем делим 4 000 000 на 5, получаем 800 000.

2. Переводим это число в шестнадцатеричную систему, получаем 0хС3500.

3. Записываем это число, используя четное количество разрядов (добавляем нулевой старший разряд, если количество разрядов нечетное), и затем делим его на группы по два разряда.

4. В данном случае будет 0x00, 0x35 и 0х0С.

В начале задержки в программе мы загружаем эти числа в рабочие регистры.





Дата публикования: 2015-02-03; Прочитано: 315 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...