Предыдущая Следующая

Функция инициализации блока управления системы CPUinit(), размещенная в файле hardware.c, содержит команды инициализации и настройки системы ФАПЧ [10], инициализации модуля МАМ, инициализации и задания направлений линий ввода/вывода GPIO. Функция инициализации прерываний INTERRUPTSinitQ, размещенная в этом же файле, содержит команды инициализации регистра управления памятью МЕММАР и контроллера векторов прерываний VIC. Необходимо заметить, что инициализацию регистра МЕММАР значением 2 необходимо производить в программе только в том случае, если программа выполняется в SRAM и, следовательно, в пространство SRAM следует переотобразить векторы прерываний. В случае выполнения программы во Rash-памяти, такое переотображение производить не требуется, и в регистре МЕММАР при инициализации должно оставаться заданное по умолчанию значение, т. е. команду «МЕММАР = 2;» в программе следует закомментировать.

В файле hardware.c также находится функция-обработчик прерываний от Таймера 0 — TimerlnterruptQ. Она содержит команды вызова всех событий, которые должны происходить в системе регулярно. К таким событиям относятся вызовы функций опроса кнопок opros_knOQ...opros_kn3Q, а также генерация импульсной последовательности, используемой для формирования дополнительного отрицательного напряжения для ЖКИ — «—U ЖКИ». Прерывание от Таймера 0 обрабатывается в системе как прерывание IRQ. Таймер 0 конфигурируется и настраивается с помощью функции TIMEROinitstartQ. Прерывания от Таймера 0 генерируются при совпадении его содержимого с регистром T0MR0, а частота генерации этих прерываний выбрана в программе равной 1000 Гц. Поскольку состояние выхода (Р1.16) генерации импульсной последовательности для формирования «—U ЖКИ» инвертируется при каждом вызове функции TimerlnterruptQ, следовательно, частота этой последовательности составляет 1000/2 = 500 Гц.

33.4. Интерфейс обслуживания RTC

Проект интерфейса" обслуживания модуля часов-календаря реального времени RTC микроконтроллеров LPC2000, в отличие от предыдущего проекта, имеет очевидное прикладное значение. По сути, этот проект представляет собой встраиваемый программно-аппаратный модуль часов-календаря реального времени, который может быть использован, и как самостоятельное устройство «часы-календарь», и в качестве программно-аппаратного дополнения к какому-либо устройству, реализованному на микроконтроллере LPC2000.

Для работы проекта в базовом макете целевой пользовательской системы (Рис. 33.3) не требуется делать никаких дополнительных аппаратных подключений.

Интерфейс обслуживания модуля RTC LPC2000 [11] реализован в проекте, все файлы которого находятся в каталоге RTC. Функции обслуживания RTC, их заголовки и определения находятся в файлах rtc.c и rich, а основная программа интерфейса модуля RTC — в файле main.c этого проекта. Программа производит циклическое чтение содержимого специальных регистров консолидированного времени модуля RTC и вывод на индикацию значений текущего времени и даты, а также реализует возможность пользовательской установки текущего времени и даты с помощью кнопок управления.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_303.html on line 104

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_303.html on line 104

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_303.html on line 104