Округляем результат до ближайшего целого числа, и получим:
N0 = 194
Относительная ошибка при округлении составит:
((194 – 193,5) / 194))×100% = 0,25 %
Такая ошибка вполне допустима для инженерных расчетов.
Таким образом, для получения прерываний через 500 мкс в Т/С0 необходимо загружать значение 194, или его 16-ричный эквивалент 0xC2.
3.2.1. В раскрытом окне CVAVR создайте новый проект, для чего выберите команду из меню File > New (Файл > Новый). В появившемся диалоговом окне Create New File (Создать новый файл) выберите тип (File Type) создаваемого файла – Project (Проект) и щелкните по кнопке ОК.
После этого появится диалоговое окно Confirm (Подтверждение), в котором будет предложено для создания нового проекта использовать CodeWizardAVR (Автоматический генератор программ). Щелкните по кнопке Yes (Да).
Далее на экране появится окно CodeWizardAVR, в котором запрашивается тип используемого в проекте микроконтроллера (AVR Chip Type). Выберите строку с типом ATmega и нажмите кнопку OK.
3.2.2. При запуске Автоматического программного генератора на экране появится окно CodeWizardAVR с новым проектом, который по умолчанию будет назван untitled.cwp.
3.2.3. В окне CodeWizardAVR на закладке Chip (Чип) выберите микроконтроллер ATmega16 и установите тактовую частоту 8,000000 МГц. Остальные настройки на этой закладке оставьте без изменения.
3.2.4. Далее необходимо перейти на закладку Timers (Таймеры). На закладке Timer 0 (Таймер 0) в качестве источника тактовой частоты Т/С0 (Clock Source) выберите System Clock (Системная тактовая частота). В выпадающем списке Clock Value (Значение тактовой частоты) выберите величину 125,000 кГц, что соответствует коэффициенту деления прескалера KPS = 64.
Затем на закладке Timer 0 надо разрешить прерывание по переполнению Т/С0. Для этого выберите опцию Overflow Interrupt (Прерывание по переполнению). Потом введите в окошке Timer Value (Значение таймера) в 16-ричном виде рассчитанное ранее начальное значение Т/С0, т.е. C2.
Окончательно закладка Timer 0 должна выглядеть следующим образом:
Clock Source: System Clock
Clock Value: 125,000 кГц
Mode: Normal top = 0xFF
Output: Disconnected
Overflow Interrupt
Timer Value: C2 h
Compare: 0
3.2.5. Далее нужно перейти на закладку Ports (Порты). На закладке Port D (Порт D) следует сконфигурировать бит 1 порта D как выход со значением 0 (хотя можно и со значением 1). Остальные биты порта D могут иметь произвольную конфигурацию.
Остальные периферийные устройства в данном проекте не участвуют, поэтому их можно оставить установленными по умолчанию.
3.2.6. Теперь все готово для генерации кода. С этой целью выберите пункт меню Program. В раскрывшемся списке уберите «галочку» со строки “Generate Code for Disabled Peripherals” (Генерировать код для неиспользованной периферии). Это сделает программу более компактной и удобной для анализа. Затем выберите из списка команду Generate, Save and Exit (Генерировать, сохранить и выйти) и щелкните мышью.
После выбора этой команды появится окно Save C Compiler Source File (сохранить исходный файл компилятора Си), в котором нужно будет выбрать папку для сохранения проекта. С этой целью выберите папку AVR и раскройте ее. Затем щелкните в окне правой кнопкой мыши, из выпадающего списка выберите пункт меню Создать > Папку и щелкните левой кнопкой. Вместо текста «Новая папка» введите имя Timer папки, где будут храниться все файлы разрабатываемого проекта. Далее щелкните два раза левой кнопкой мыши, чтобы раскрыть новую папку Timer.
В поле Имя файла введите имя исходного файла с расширением .c, например, timer.c и щелкните по кнопке Сохранить.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.