Поиск по сайту: |
|
По базе: |
![]() |
|
Главная страница > Обзоры по типам > Микроконтроллеры |
|
|||||||||||||||||
Пример пользовательской программы с использованием отладочного комплекта MAXQ2000 Evaluation KitДоступность стандартных инструментов языка ANSI Си и сред разработки, включающих эти инструменты, значительно облегчает разработку пользовательских программ для новых или незнакомых процессоров. Инструменты для семейства процессоров MAXQ включают компилятор ANSI Си от компании IAR и интегрированную среду разработки IAR Embedded Workbench. С помощью этих программ, имея начальные знания о регистрах специального назначения MAXQ, разработчик может быстро и без усилий начать писать пользовательские программы для архитектуры MAXQ. Самый легкий способ продемонстрировать, насколько простым может быть процесс разработки для архитектуры MAXQ – пример создания пользовательской программы. Программа, описываемая здесь, использует процессор MAXQ2000 и отладочный комплект MAXQ2000 Evaluation Kit. Процессор MAXQ2000 обладает широким спектром интегрированных периферийных устройств, включая:
Описание пользовательской программы В этом примере используется контроллер ЖКИ, порт SPI в ведущем режиме, один из UARTов, аппаратный умножитель и один из таймеров. Таймер используется для генерирования периодических прерываний. В момент прерывания MAXQ2000 измеряет температуру и отправляет полученный результат на ЖКИ и один из своих последовательных портов. Порт SPI соединен с системой сбора данных (DAS) MAX1407, которая содержит АЦП. Значения температуры измеряются термистором, подключенным к АЦП, входящему в состав MAX1407. Использование контроллера ЖКИ Для использования ЖКИ следует сконфигурировать два управляющих регистра. Как только эти регистры будут установлены, сегменты ЖКИ можно будет включать установкой бита в одном из регистров данных ЖКИ. Приведенный ниже код показывает, как конфигурируется контроллер ЖКИ в описываемом примере пользовательской программы:
Связь по SPI Три регистра управляют различными режимами SPI, поддерживаемыми MAXQ2000. Для связи с MAX1407 используется приведенный ниже код для инициализации компонентов SPI и переведения их в нужный режим.
Как только установлена конфигурация регистров SPI, регистр SPIB используется для отправки и получения данных. Запись в регистр инициирует двунаправленную передачу данных между ведущим и ведомым устройствами SPI. Бит STBY в регистре SPICN сигнализирует об окончании передачи. Ниже показан код отправки и получения данных SPI.
Запись в последовательный порт В примере пользовательской программы один из последовательных портов MAXQ2000 используется для вывода текущих значений измеренной температуры. Перед записью каких-либо данных в порт, пользовательская программа должна установить значение скорости передачи (в бодах) и режим работы последовательного порта. Как и в предыдущем примере, следует инициализировать несколько регистров для обеспечения передачи через последовательный порт.
Как и в случае передачи данных через SPI, один и тот же регистр используется для приема и передачи последовательных данных. Запись в регистр SBUF0 запускает передачу. При приеме полученные данные могут быть прочитаны из регистра SBUF0. Нижеследующая функция использована в примере пользовательской программы для вывода данных через последовательный порт.
Генерирование периодических прерываний с помощью таймера Последний из компонентов, используемых в этом примере пользовательской программы – один из 16-битных таймеров. Таймер генерирует прерывания, которые запускают процесс считывания температуры дважды в секунду. Для конфигурирования таймера в этом примере, программист должен установить значение перезагрузки счетчика, задать источник тактового сигнала и запустить таймер. Приведенный ниже код отображает шаги, необходимые для инициализации таймера 0.
Использование этого таймера в качестве источника прерывания требует еще нескольких шагов. Для архитектуры MAXQ прерывания необходимо разрешить на трех уровнях: глобально, для каждого модуля и локально. Используя компилятор IAR, можно разрешить прерывания глобально, вызвав функцию _enable_ interrupt(). Это эффективно устанавливает бит Interrupt Global Enable (IGE) регистра прерывания и управления (IC). Поскольку таймер 0 размещен в модуле 3, необходимо установить бит 3 в регистр маски прерывания (IMR) чтобы разрешить прерывания для модуля 3. Разрешение локального прерывания происходит в результате установки бита разрешения таймерных прерываний (ET2) в регистре А управления таймером (T2CNA). Выполнение этих шагов в примере пользовательской программы показано ниже.
Наконец, использование прерываний требует инициализации вектора прерываний. Компилятор IAR поддерживает применение различных функций обработки прерывания для каждого модуля. Установка обработчика прерывания для конкретного модуля требует использования директивы #pragma vector. Описанию функции обработки прерывания должно также предшествовать ключевое слово _interrupt. В приводимом примере пользовательской программы обработчик прерывания для модуля 3 описывается следующим образом:
Заключение Как показано на примерах этих функций, знание особенностей нескольких периферийных регистров позволяет программистам легко разрабатывать пользовательские программы для процессора MAXQ2000 и всего семейства процессоров MAXQ. Наличие АРМ IAR Embedded Workbench ускоряет процесс разработки, позволяя писать программы на ANSI-совместимом языке Си. Полный исходный текст для этой пользовательской программы можно загрузить по адресу www.maxim-ic.com/MAXQ_code" target="_blank">www.maxim-ic.com/MAXQ_code. Прочтите описание и комментарии, помещенные в начале текста программы, касающиеся электрической схемы и подготовки к работе. Подробные сведения по использованию IAR Embedded Workbench приведены во второй статье данной публикации, озаглавленной Программирование в среде MAXQ. ![]() Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи ![]() |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|