Карта адресуемых бит в памяти данных. Программирование процедур управления с помощью CodeWizardAVR. брос и исходная идентификация микроконтроллера, страница 4

Округляем результат до ближайшего целого числа, и получим:

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  и щелкните по кнопке Сохранить.