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

Затем на экране появится окно Save C Compiler Project File (Сохранить файл проекта компилятора Си). В поле Имя файла введите имя файла проекта с расширением  .prj  (timer.prj) и щелкните по кнопке Сохранить.

И, наконец, на экране появится окно Save  untitled.cwp As (Сохранить … Как). В поле Имя файла введите имя файла проекта CodeWizardAVR с расширением  .cwp  (timer.cwp) и щелкните по кнопке Сохранить.

После этого CodeWizardAVR откроет окно исходного файла со сгенерированным кодом.

В нашем примере требуется, чтобы при возникновении прерывания по переполнению Т/С0 логический уровень сигнала на выводе PD1 порта D менялся на противоположный. Для этого в функцию обработки прерывания по переполнению Т/С0  timer0_ovf_isr надо вставить строку

PORTD.1 = ~PORTD.1;

в  то место, куда указывает CodeWizardAVR:

          // Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF]  void timer0_ovf_isr(void)

{

         // Reinitialize Timer 0 value

TCNT0 = 0xC2;

         // Place your code here

PORTD.1 = ~ PORTD.1;

}

3.2.7. Теперь необходимо выполнить построение проекта. С этой целью выполните команду меню Project > Build All (Проект > Построить все). Убедитесь, что появившееся после компиляции окно Information (Информация)  сообщает об отсутствии ошибок и предупреждений, и щелкните по кнопке ОК. Если сообщения об ошибках присутствуют, то ошибки следует устранить и перекомпилировать проект заново.

Итак, проект готов. Проверку работы программы выполните с помощью среды моделирования электронных устройств Proteus VSM.

3.2.8. Сверните окно CodeWizardAVRи запустите программу ISIS.exe пакета Proteus VSM с помощью ярлычка с надписью ISIS на рабочем столе компьютера.

Создайте новый проект, используя пункт меню File > New Design. В открывшемся диалоговом окне щелкните по варианту DEFAULT, а затем по кнопке ОК.

Откройте окно Pick Device библиотеки компонентов и выберите микроконтроллер ATMEGA16.

Разместите микроконтроллер в окне редактирования. Для выбора осциллографа подведите курсор к иконке с всплывающей надписью Virtual Instruments Mode и щелкните левой кнопкой мыши. В окне  Object Selector появится список виртуальных приборов (Instruments). Выберите строку OSCILLOSCOPE (осциллограф) и щелкните левой кнопкой мыши. Затем разместите изображение осциллографа в окне редактирования согласно рис. 2.

Рис. 2. Схема исследования генератора меандра

После завершения разводки необходимо сохранить проект. Для этого выберите пункт меню File > Save Design As…  В диалоговом окне раскройте папку e:\....\AVR\Timer   и сохраните в ней проект под именем  timer.dsn.

Далее необходимо установить параметры микроконтроллера. С этой целью подведите курсор мыши на изображение микроконтроллера и дважды щелкните левой кнопкой. Откроется окно редактирования свойств компонентов Edit Component. Прежде всего нужно записать hex-код программы в память МК. С этой целью щелкните по кнопке в правой части строки ProgramFile. Откроется окно SelectFileName с файлами из папки Timer. Раскройте папку с именем Exe (исполняемые).  Выберите файл с именем timer.hex  и нажмите кнопку «Открыть».

В строке ProcessorClockFrequency (тактовая частота процессора) выставьте 8 МГц. Остальные установки изменять нет необходимости.

Щелкните по кнопке ОК для подтверждения выбора параметров. Затем щелкните по пустому месту схемы для снятия выделения с МК.

3.1.8. Теперь можно проверить работу МКУ. С этой целью с помощью кнопки  Play – ПУСК запустите программу работы МК. После запуска в окне Proteus появится изображение осциллографа. Настройте осциллограф, чтобы на экране было устойчивое изображение меандра. Замерьте период и длительность импульса меандра. Вычислите частоту импульсной последовательности. Сравните ее с заданной и сделайте выводы.

В заключение остановите выполнение программы и закройте окно Proteus VSM.

3.3. Исследование внешнего прерывания