- •Перечень сокращений
- •Предисловие
- •Введение
- •Часть 1. Архитектура и аппаратные средства микроконтроллера LPC214x
- •1.1 Общие сведения о микроконтроллерах LPC214x
- •1.2 Программистская модель процессорного ядра ARM7TDMI
- •1.2.1 Режимы работы ядра ARM7
- •1.2.2 Система регистров
- •1.2.3 Слово состояния программы
- •1.2.4 Организация памяти
- •1.3 Система команд
- •1.3.1 Команды арифметической и логической обработки
- •1.3.2 Команды умножения
- •1.3.3 Команды регистровой пересылки
- •1.3.4 Команды загрузки и сохранения регистров
- •1.3.5 Команды пакетного обмена с памятью
- •1.3.6 Команды передачи управления
- •1.3.7 Команды обращения к слову состояния программы
- •1.4 Методы адресации
- •1.4.1 Непосредственная адресация
- •1.4.2 Регистровая адресация
- •1.4.3 Косвенная адресация
- •1.4.4 Индексная адресация
- •1.5 Процедура начальной загрузки и режимы отображения памяти
- •1.6 Обработка исключительных ситуаций
- •1.7 Система тактирования
- •1.7.1 Выбор тактовой частоты микроконтроллера
- •1.7.2 Настройка тактирования периферийных устройств
- •1.8 Модуль ускорения памяти
- •1.9 Внешние выводы микроконтроллера
- •1.9.1 Служебные контакты
- •1.9.2 Программно-управляемые линии ввода-вывода
- •1.9.3 Альтернативные функции линий ввода вывода
- •1.10 Цифровые порты ввода-вывода
- •1.10.1 Управление портом через низкоскоростную шину
- •1.10.2 Управление портом через высокоскоростную шину
- •1.11 Система прерываний
- •1.11.1 Назначение системы прерываний
- •1.11.2 Процесс обработки прерываний IRQ
- •1.11.3 Процесс обработки быстрых прерываний FIQ
- •1.11.4 Регистры управления системой прерываний
- •1.11.5 Порядок настройки прерывания IRQ
- •1.11.6 Порядок настройки быстрого прерывания FIQ
- •1.11.7 Процедура обработки прерывания
- •1.11.8 Задержка обработки прерывания
- •1.12 Внешние прерывания
- •1.12.1 Регистры управления блоком внешних прерываний
- •1.12.2 Порядок настройки блока внешних прерываний
- •1.13 Таймеры-счетчики
- •1.13.1 Режим таймера и схема совпадения
- •1.13.2 Режим счетчика
- •1.13.3 Схема захвата
- •1.13.4 Управляющие регистры
- •1.13.5 Формирование интервалов времени через систему прерываний
- •1.13.6 Измерение периода и длительности импульса с помощью устройства захвата
- •1.13.7 Подсчет числа импульсов в единицу времени
- •1.14 Широтно-импульсный модулятор
- •1.14.1 Основы функционирования
- •1.14.2 Дополнительные возможности
- •1.14.3 Регистры управления ШИМ
- •1.14.4 Порядок настройки ШИМ
- •1.15 Аналого-цифровые преобразователи
- •1.15.1 Краткие сведения о встроенных АЦП
- •1.15.2 Общие рекомендации по использованию АЦП
- •1.15.3 Управляющие регистры
- •1.15.4 Порядок настройки АЦП
- •1.15.5 Программный запуск аналого-цифрового преобразователя
- •1.15.6 Запуск аналого-цифрового преобразователя по таймеру
- •1.15.7 Программный опрос готовности АЦП
- •1.15.8 Опрос готовности АЦП по прерыванию
- •1.15.9 Считывание и масштабирование результата АЦП
- •1.16 Цифро-аналоговый преобразователь
- •1.16.1 Регистр управления ЦАП
- •1.16.2 Рекомендации по применению ЦАП
- •1.17 Последовательный синхронный приемо-передатчик SPI
- •1.17.1 Назначение и основы функционирования интерфейса SPI
- •1.17.2 Управляющие регистры
- •1.17.3 Передача и прием данных в режиме ведущего
- •1.17.4 Передача и прием данных в режиме ведомого
- •1.18 Последовательный синхронный приемо-передатчик I2С
- •1.18.1 Назначение и основы функционирования интерфейса I2С
- •1.18.2 Управляющие регистры
- •1.18.3 Настройка модуля I2C
- •1.18.4 Типовые циклы обмена данными по шине I2C
- •1.19 Последовательный асинхронный приемопередатчик UART
- •1.19.1 Назначение и основы функционирования порта UART
- •1.19.2 Управляющие регистры
- •1.19.3 Настройка порта UART
- •1.19.4 Прием байта с опросом флага
- •1.19.5 Передача байта с опросом флага
- •1.19.6 Прием и передача данных с использованием прерываний
- •1.19.7 Прием и передача пакетов данных
- •1.19.8 Диагностика ошибок
- •1.19.9 Автоматическая настройка скорости
- •1.20 Часы реального времени
- •1.20.1 Основные возможности часов реального времени
- •1.20.2 Управляющие регистры
- •1.20.3 Рекомендации по применению
- •1.21 Управление питанием и идентификация источников сброса
- •1.21.1 Краткие сведения о мониторе питания
- •1.21.2 Управляющие регистры
- •Часть 2. Разработка и отладка программ с помощью современных инструментальных средств
- •2.1 Форматы представления чисел
- •2.1.1 Основные коды представления целых чисел
- •2.1.2 Форматы представление целых чисел, приятные в языке Си
- •2.1.3 Форматы чисел c плавающей точкой стандарта IEEE754
- •2.2 Основы программирования на языке Си
- •2.2.1 Структура программы
- •2.2.2 Числовые константы
- •2.2.3 Переменные и именованные константы
- •2.2.4 Оператор присваивания, выражения и операции
- •2.2.5 Условный оператор
- •2.2.6 Приведение и преобразование типов
- •2.2.7 Массивы
- •2.2.8 Строки символов
- •2.2.9 Структуры
- •2.2.10 Объединения
- •2.2.11 Указатели
- •2.2.12 Ветвление
- •2.2.13 Множественное ветвление
- •2.2.14 Цикл со счетчиком
- •2.2.15 Циклы с предусловием и постусловием
- •2.2.16 Функции
- •2.2.17 Некоторые директивы компилятора
- •2.2.18 Библиотека математических функций MATH.h
- •2.2.19 Функция создания форматированных строк SNPRINTF
- •2.2.20 Ассемблер в Си-программах
- •2.3 Интегрированная среда разработки Keil µVision 4
- •2.3.1 Создание проекта
- •2.3.2 Создание файла программы
- •2.3.3 Настройка проекта
- •2.3.4 Набор текста программы
- •2.3.5 Компиляция программы
- •2.3.6 Отладка программы
- •2.3.7 Основные отладочные инструменты среды Keil µVision 4
- •2.3.8 Управление распределением памяти
- •2.4 Методика отладки программ
- •2.4.1 Быстрый поиск ошибок
- •2.4.2 Ввод и вывод дискретных сигналов
- •2.4.3 Таймер-счетчик. Формирование интервалов времени
- •2.4.4 Таймер-счетчик. Формирование внешних сигналов совпадения
- •2.4.5 Таймер-счетчик. Счетчик внешних событий
- •2.4.6 Таймер-счетчик. Устройство захвата
- •2.4.7 Широтно-импульсный модулятор
- •2.4.8 Аналого-цифровой преобразователь
- •2.4.9 Цифро-аналоговый преобразователь
- •2.4.10 Приемопередатчик SPI
- •2.4.11 Приемопередатчик I2C
- •2.4.12 Приемопередатчик UART
- •2.4.13 Часы реального времени
- •2.5 О программировании ARM7 на ассемблере
- •2.5.1 Основные правила записи программ на ассемблере
- •2.5.2 Псевдокоманды
- •2.5.3 Директивы ассемблера
- •2.5.4 Макросы
- •2.5.5 Пример простой программы
- •2.6 Распространенные средства разработки и отладки
- •2.6.1 Демонстрационные платы EA-EDU-001 и EA-EDU-011
- •2.6.2 Внутрисхемный отладчик J-Link
- •2.6.3 Утилиты программирования ПЗУ LPC Flash Utility и FlashMagic
- •2.6.4 Программа-терминал 232Analyzer
- •2.6.5 Низкоуровневый редактор диска DMDE
- •Часть 3. Решение типовых задач локального управления
- •3.1 Формирование временной задержки с помощью цикла
- •3.1.1 Задание
- •3.1.2 Общие рекомендации
- •3.1.3 Алгоритм программы
- •3.1.4 Отладка
- •3.1.5 Дополнительные сведения о формировании временной задержки
- •3.2 Формирование дискретного сигнала с помощью таймера
- •3.2.1 Задание
- •3.2.2 Общие рекомендации
- •3.2.3 Алгоритм программы
- •3.3 Опрос дискретного датчика или кнопки
- •3.3.1 Задание
- •3.3.2 Общие рекомендации
- •3.3.3 Алгоритм программы
- •3.3.4 Отладка
- •3.4 Опрос состояния механических контактов с подавлением дребезга
- •3.4.1 Задание
- •3.4.2 Общие рекомендации
- •3.4.3 Алгоритм программы
- •3.4.4 Отладка
- •3.5 Опрос клавиатуры с автоповтором
- •3.5.1 Задание
- •3.5.2 Общие рекомендации
- •3.5.3 Алгоритм программы
- •3.5.4 Отладка
- •3.6 Формирование импульсного управляющего сигнала с помощью модуля ШИМ
- •3.6.1 Задание
- •3.6.2 Общие сведения
- •3.6.3 Алгоритм программы
- •3.6.4 Отладка
- •3.6.5 Синхронизация внешним сигналом
- •3.7 Формирование сигналов специальной формы с помощью ЦАП
- •3.7.1 Задание
- •3.7.2 Основы
- •3.7.3 Алгоритм программы
- •3.7.4 Повышение точности генерирования частоты
- •3.7.5 Выбор числа дискрет
- •3.8 Управление двухфазным шаговым двигателем
- •3.8.1 Задание
- •3.8.2 Общие сведения
- •3.8.3 Алгоритм программы
- •3.9 Применение ШИМ для формирования низкочастотных аналоговых сигналов
- •3.9.1 Задание
- •3.9.2 Основные сведения
- •3.9.3 Алгоритм основной программы
- •3.9.4 Алгоритм процедуры обработки прерывания
- •3.10 Управление символьным жидкокристаллическим индикатором
- •3.10.1 Задание
- •3.10.2 Управление модулем жидкокристаллической индикации
- •3.10.3 Разработка функции управления ЖКИ с ожиданием готовности
- •3.10.4 Функция вывода строки символов
- •3.10.5 Разработка функции инициализации модуля ЖКИ
- •3.10.6 Разработка тестовой программы
- •3.10.7 Управление ЖКИ с опросом флага готовности
- •3.10.8 Программирование произвольных символов
- •3.11 Управление матричным светодиодным индикатором
- •3.11.1 Задание
- •3.11.2 Основные рекомендации
- •3.11.3 Алгоритм основной программы
- •3.11.4 Алгоритм процедуры обработки прерывания
- •3.11.5 Реализация движения строки
- •3.12 Управление матричным жидкокристаллическим дисплеем
- •3.12.1 Управление дисплеем на основе контроллера PCF8833
- •3.12.2 Построение простейших геометрических фигур
- •3.13 Измерение постоянного напряжения
- •3.13.1 Задание
- •3.13.2 Основные рекомендации
- •3.13.3 Алгоритм основной программы
- •3.13.4 Алгоритм процедуры обработки прерывания от АЦП
- •3.13.5 АЦП с циклическим опросом нескольких каналов
- •3.13.6 Автоматический выбор пределов измерения
- •3.14 Измерение параметров уровня переменного напряжения
- •3.14.1 Задание
- •3.14.2 Основные рекомендации
- •3.14.3 Алгоритм основной программы
- •3.14.4 Алгоритм процедуры обработки прерывания
- •3.15 Измерение ускорения с помощью трехосевого акселерометра
- •3.16 Измерение интервалов времени с помощью таймера
- •3.16.1 Задание
- •3.16.2 Общие рекомендации
- •3.16.3 Алгоритм основной программы
- •3.16.4 Алгоритм процедуры обработки прерывания
- •3.16.5 Повышение разрешающей способности путем усреднения
- •3.16.6 Введение поправок
- •3.17 Измерение частоты с помощью счетчика
- •3.17.1 Задание
- •3.17.2 Основные рекомендации
- •3.17.3 Алгоритм программы
- •3.17.4 Повышение точности измерений
- •3.18 Опрос цифрового датчика температуры. Интерфейс I2C
- •3.18.1 Задание
- •3.18.2 Общие рекомендации
- •3.18.3 Алгоритм программы
- •3.20 Обмен данными с электрически перепрограммируемым ПЗУ
- •3.20.1 Задание
- •3.20.2 Общие сведения о микросхемах EEPROM
- •3.20.3 Адресация в микросхемах EEPROM
- •3.20.4 Порядок чтения EEPROM
- •3.20.5 Порядок записи EEPROM
- •3.20.6 Разработка программы чтения EEPROM
- •3.20.7 Разработка функции записи блока данных в EEPROM
- •3.21 Интерфейс RS-232. Прием и передача простых команд
- •3.21.1 Задание
- •3.21.2 Алгоритм программы
- •3.21.3 Автоматическая настройка скорости
- •3.22.1 Задание
- •3.22.2 Основные рекомендации
- •3.22.3 Алгоритм программы
- •3.23 Интерфейс RS-232. Прием пакета переменной длины
- •3.23.1 Задание
- •3.23.2 Основы реализации
- •3.23.3 Алгоритм программы
- •3.24 Обмен данными с картой памяти Secure Digital
- •3.24.1 Задание
- •3.24.2 Общие сведения о карах FLASH-памяти SD/MMC
- •3.24.3 Команды SD/MMC
- •3.24.4 Процедура инициализации карты
- •3.24.5 Чтение и запись данных
- •3.24.6 Обработка ошибок
- •3.24.7 Комментарии к алгоритму и программе
- •Алфавитный указатель управляющих регистров
- •Список литературы
- •Содержание
Алфавитный указатель управляющих регистров
ADGSR ..................................................... |
66 |
ADxCR...................................................... |
64 |
ADxGDR ............................................ |
66, 67 |
ADxINTEN............................................... |
67 |
ADxSTAT ................................................. |
67 |
ALDOM.................................................... |
90 |
ALDOW.................................................... |
90 |
ALDOY..................................................... |
90 |
ALHOUR.................................................. |
90 |
ALMIN ..................................................... |
90 |
ALMONTH .............................................. |
90 |
ALSEC...................................................... |
90 |
ALYEAR .................................................. |
90 |
AMR.......................................................... |
93 |
APBDIV.................................................... |
29 |
CCR .......................................................... |
92 |
CIIR .......................................................... |
92 |
CPSR......................................................... |
10 |
CTCR........................................................ |
92 |
CTIME0–CTIME2 .................................. |
90 |
DACR........................................................ |
71 |
DOM ......................................................... |
90 |
DOW ......................................................... |
90 |
DOY .......................................................... |
90 |
EXTINT.................................................... |
48 |
EXTMODE .............................................. |
49 |
EXTPOLAR ............................................. |
49 |
FIOxCLR.................................................. |
41 |
FIOxDIR................................................... |
41 |
FIOxMASK .............................................. |
41 |
FIOxPIN ................................................... |
41 |
FIOxPIN0–3 ............................................. |
41 |
FIOxPINL ................................................ |
41 |
FIOxPINU ................................................ |
41 |
FIOxSET .................................................. |
41 |
HOUR ....................................................... |
90 |
I2CxCONCLR ......................................... |
77 |
I2CxCONSET .......................................... |
77 |
I2CxDAT .................................................. |
78 |
I2CxSCLH.......................................... |
78, 79 |
I2CxSCLL .......................................... |
78, 79 |
I2CxSTAT ................................................ |
78 |
ILR ............................................................ |
92 |
INTWAKE ............................................... |
48 |
IOxCLR .................................................... |
40 |
IOxDIR ..................................................... |
39 |
IOxPIN...................................................... |
39 |
IOxSET ..................................................... |
40 |
MIN ........................................................... |
90 |
MONTH.................................................... |
90 |
PCON ........................................................ |
94 |
PCONP ..................................................... |
95 |
PINSEL0................................................... |
34 |
PINSEL1................................................... |
34 |
PINSEL2................................................... |
34 |
PLL0CON................................................. |
28 |
PLL1CON................................................. |
28 |
PREFRAC ................................................ |
93 |
PREINT .................................................... |
93 |
PWMIR..................................................... |
60 |
PWMLER................................................. |
60 |
PWMMCR ............................................... |
59 |
PWMPC.................................................... |
59 |
PWMPCR................................................. |
59 |
PWMPR.................................................... |
59 |
PWMTC ................................................... |
59 |
PWMTCR................................................. |
59 |
R0–R12 ..................................................... |
10 |
R13 (SP) .................................................... |
10 |
R13_xxx .................................................... |
10 |
R14 (LR) ................................................... |
10 |
R14_xxx .................................................... |
10 |
R15 (PC) ................................................... |
10 |
RSIR.......................................................... |
95 |
S0SPCCR.................................................. |
74 |
S0SPCR..................................................... |
72 |
S0SPDR..................................................... |
74 |
S0SPINT ................................................... |
74 |
S0SPSR ..................................................... |
74 |
SCS............................................................ |
40 |
SEC ........................................................... |
90 |
SPSR_xxx ................................................. |
10 |
TxCCR...................................................... |
53 |
TxCRx....................................................... |
53 |
TxCTCR ................................................... |
51 |
TxEMR ..................................................... |
53 |
TxIR .......................................................... |
51 |
TxMCR ..................................................... |
52 |
TxMRx...................................................... |
52 |
TxPR ......................................................... |
52 |
251
TxPС ......................................................... |
52 |
|
|
TxTC ......................................................... |
52 |
VICDefVectAddr ..................................... |
45 |
TxTCR ...................................................... |
51 |
VICFIQStatus .......................................... |
43 |
|
|
VICIntEnable........................................... |
43 |
U0ACR...................................................... |
85 |
VICIntEnClear ........................................ |
44 |
U0DLL ...................................................... |
82 |
VICIntSelect............................................. |
44 |
U0DLM ..................................................... |
82 |
VICIRQStatus.......................................... |
43 |
U0FCR ...................................................... |
83 |
VICProtection .......................................... |
45 |
U0FDR ...................................................... |
82 |
VICRAWStatus ....................................... |
43 |
U0IER ....................................................... |
86 |
VICSoftInt................................................ |
44 |
U0IIR ........................................................ |
86 |
VICSoftIntClear ...................................... |
44 |
U0LCR...................................................... |
84 |
VICVectAddr ........................................... |
45 |
U0LSR ...................................................... |
84 |
VICVectAddr0–15 ................................... |
45 |
U0RBR...................................................... |
81 |
VICVectCntl0–15..................................... |
44 |
U0TER ...................................................... |
85 |
|
|
U0THR...................................................... |
81 |
YEAR........................................................ |
90 |
252
Список литературы
1.Редькин П. П. Микроконтроллеры ARM7 семейства LPC2000; руководство пользователя. М.: Издательский дом «Додэка-XXI», 2007. 560 с.
2.Мартин Т. Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс / Пер с англ. М.: Издательский дом «Додэка-XXI», 2006. 240 с.
3.Подбельский В. В., Фомин С. С. Программирование на языке Си: учеб. пособие. 2-е доп. изд. М.: Финансы и статистика, 2007. 600 с.
4.Климова Л. М. С++. Практическое программирование. Решение типовых задач. М.: Кудиц-Образ, 2001. 592 с.
5.Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов.
М.: Мир, 1978. 848 c.
253
Содержание |
|
Перечень сокращений.................................................................................................................... |
3 |
Предисловие ................................................................................................................................... |
4 |
Введение.......................................................................................................................................... |
6 |
Часть 1. Архитектура и аппаратные средства микроконтроллера LPC214x...................... |
8 |
1.1 Общие сведения о микроконтроллерах LPC214x............................................................. |
8 |
1.2 Программистская модель процессорного ядра ARM7TDMI .......................................... |
9 |
1.2.1 Режимы работы ядра ARM7................................................................................................................... |
9 |
1.2.2 Система регистров ................................................................................................................................ |
10 |
1.2.3 Слово состояния программы ................................................................................................................. |
10 |
1.2.4 Организация памяти .............................................................................................................................. |
13 |
1.3 Система команд ................................................................................................................. |
14 |
1.3.1 Команды арифметической и логической обработки .......................................................................... |
15 |
1.3.2 Команды умножения .............................................................................................................................. |
15 |
1.3.3 Команды регистровой пересылки ......................................................................................................... |
15 |
1.3.4 Команды загрузки и сохранения регистров.......................................................................................... |
19 |
1.3.5 Команды пакетного обмена с памятью............................................................................................... |
19 |
1.3.6 Команды передачи управления .............................................................................................................. |
20 |
1.3.7 Команды обращения к слову состояния программы ........................................................................... |
20 |
1.4 Методы адресации............................................................................................................. |
20 |
1.4.1 Непосредственная адресация ................................................................................................................ |
21 |
1.4.2 Регистровая адресация .......................................................................................................................... |
21 |
1.4.3 Косвенная адресация .............................................................................................................................. |
22 |
1.4.4 Индексная адресация .............................................................................................................................. |
22 |
1.5 Процедура начальной загрузки и режимы отображения памяти.................................. |
24 |
1.6 Обработка исключительных ситуаций ............................................................................ |
25 |
1.7 Система тактирования....................................................................................................... |
27 |
1.7.1 Выбор тактовой частоты микроконтроллера................................................................................... |
27 |
1.7.2 Настройка тактирования периферийных устройств........................................................................ |
28 |
1.8 Модуль ускорения памяти ................................................................................................ |
29 |
1.9 Внешние выводы микроконтроллера .............................................................................. |
30 |
1.9.1 Служебные контакты ........................................................................................................................... |
30 |
1.9.2 Программно-управляемые линии ввода-вывода ................................................................................... |
30 |
1.9.3 Альтернативные функции линий ввода вывода ................................................................................... |
31 |
1.10 Цифровые порты ввода-вывода ..................................................................................... |
37 |
1.10.1 Управление портом через низкоскоростную шину............................................................................ |
38 |
1.10.2 Управление портом через высокоскоростную шину ......................................................................... |
40 |
1.11 Система прерываний ....................................................................................................... |
41 |
1.11.1 Назначение системы прерываний ....................................................................................................... |
41 |
1.11.2 Процесс обработки прерываний IRQ .................................................................................................. |
42 |
1.11.3 Процесс обработки быстрых прерываний FIQ ................................................................................. |
43 |
1.11.4 Регистры управления системой прерываний ..................................................................................... |
43 |
1.11.5 Порядок настройки прерывания IRQ .................................................................................................. |
45 |
1.11.6 Порядок настройки быстрого прерывания FIQ ................................................................................ |
46 |
1.11.7 Процедура обработки прерывания ..................................................................................................... |
46 |
1.11.8 Задержка обработки прерывания....................................................................................................... |
46 |
1.12 Внешние прерывания ...................................................................................................... |
48 |
1.12.1 Регистры управления блоком внешних прерываний .......................................................................... |
48 |
1.12.2 Порядок настройки блока внешних прерываний................................................................................ |
49 |
1.13 Таймеры-счетчики ........................................................................................................... |
50 |
1.13.1 Режим таймера и схема совпадения .................................................................................................. |
50 |
1.13.2 Режим счетчика ................................................................................................................................... |
51 |
1.13.3 Схема захвата....................................................................................................................................... |
51 |
1.13.4 Управляющие регистры ....................................................................................................................... |
51 |
1.13.5 Формирование интервалов времени через систему прерываний ..................................................... |
53 |
1.13.6 Измерение периода и длительности импульса с помощью устройства захвата .......................... |
54 |
1.13.7 Подсчет числа импульсов в единицу времени..................................................................................... |
55 |
1.14 Широтно-импульсный модулятор ................................................................................. |
55 |
254
1.14.1 Основы функционирования................................................................................................................... |
56 |
1.14.2 Дополнительные возможности........................................................................................................... |
58 |
1.14.3 Регистры управления ШИМ ................................................................................................................ |
59 |
1.14.4 Порядок настройки ШИМ ................................................................................................................... |
61 |
1.15 Аналого-цифровые преобразователи............................................................................. |
61 |
1.15.1 Краткие сведения о встроенных АЦП ................................................................................................ |
61 |
1.15.2 Общие рекомендации по использованию АЦП.................................................................................... |
62 |
1.15.3 Управляющие регистры ....................................................................................................................... |
64 |
1.15.4 Порядок настройки АЦП ..................................................................................................................... |
67 |
1.15.5 Программный запуск аналого-цифрового преобразователя............................................................. |
68 |
1.15.6 Запуск аналого-цифрового преобразователя по таймеру................................................................. |
68 |
1.15.7 Программный опрос готовности АЦП............................................................................................... |
68 |
1.15.8 Опрос готовности АЦП по прерыванию ............................................................................................ |
69 |
1.15.9 Считывание и масштабирование результата АЦП ......................................................................... |
69 |
1.16 Цифро-аналоговый преобразователь............................................................................. |
70 |
1.16.1 Регистр управления ЦАП ..................................................................................................................... |
71 |
1.16.2 Рекомендации по применению ЦАП .................................................................................................... |
71 |
1.17 Последовательный синхронный приемо-передатчик SPI ........................................... |
72 |
1.17.1 Назначение и основы функционирования интерфейса SPI ............................................................... |
72 |
1.17.2 Управляющие регистры ....................................................................................................................... |
72 |
1.17.3 Передача и прием данных в режиме ведущего................................................................................... |
74 |
1.17.4 Передача и прием данных в режиме ведомого................................................................................... |
75 |
1.18 Последовательный синхронный приемо-передатчик I2С ............................................ |
75 |
1.18.1 Назначение и основы функционирования интерфейса I2С................................................................ |
75 |
1.18.2 Управляющие регистры ....................................................................................................................... |
77 |
1.18.3 Настройка модуля I2C .......................................................................................................................... |
79 |
1.18.4 Типовые циклы обмена данными по шине I2C .................................................................................... |
79 |
1.19 Последовательный асинхронный приемопередатчик UART ...................................... |
80 |
1.19.1 Назначение и основы функционирования порта UART ..................................................................... |
80 |
1.19.2 Управляющие регистры ....................................................................................................................... |
81 |
1.19.3 Настройка порта UART ...................................................................................................................... |
87 |
1.19.4 Прием байта с опросом флага ............................................................................................................ |
87 |
1.19.5 Передача байта с опросом флага ....................................................................................................... |
88 |
1.19.6 Прием и передача данных с использованием прерываний ................................................................. |
88 |
1.19.7 Прием и передача пакетов данных ..................................................................................................... |
89 |
1.19.8 Диагностика ошибок ............................................................................................................................ |
89 |
1.19.9 Автоматическая настройка скорости .............................................................................................. |
89 |
1.20 Часы реального времени ................................................................................................. |
90 |
1.20.1 Основные возможности часов реального времени ............................................................................ |
90 |
1.20.2 Управляющие регистры ....................................................................................................................... |
90 |
1.20.3 Рекомендации по применению ............................................................................................................. |
93 |
1.21 Управление питанием и идентификация источников сброса ..................................... |
93 |
1.21.1 Краткие сведения о мониторе питания............................................................................................. |
93 |
1.21.2 Управляющие регистры ....................................................................................................................... |
94 |
Часть 2. Разработка и отладка программ с помощью современных инструментальных |
|
средств ......................................................................................................................................... |
96 |
2.1 Форматы представления чисел......................................................................................... |
96 |
2.1.1 Основные коды представления целых чисел......................................................................................... |
96 |
2.1.2 Форматы представление целых чисел, приятные в языке Си............................................................ |
98 |
2.1.3 Форматы чисел c плавающей точкой стандарта IEEE754............................................................... |
99 |
2.2 Основы программирования на языке Си....................................................................... |
101 |
2.2.1 Структура программы ........................................................................................................................ |
102 |
2.2.2 Числовые константы ........................................................................................................................... |
102 |
2.2.3 Переменные и именованные константы ............................................................................................ |
103 |
2.2.4 Оператор присваивания, выражения и операции.............................................................................. |
104 |
2.2.5 Условный оператор .............................................................................................................................. |
104 |
2.2.6 Приведение и преобразование типов .................................................................................................. |
104 |
2.2.7 Массивы ................................................................................................................................................. |
107 |
2.2.8 Строки символов................................................................................................................................... |
107 |
2.2.9 Структуры ............................................................................................................................................ |
108 |
2.2.10 Объединения ........................................................................................................................................ |
108 |
255
2.2.11 Указатели ............................................................................................................................................ |
109 |
2.2.12 Ветвление ............................................................................................................................................ |
109 |
2.2.13 Множественное ветвление................................................................................................................ |
110 |
2.2.14 Цикл со счетчиком.............................................................................................................................. |
111 |
2.2.15 Циклы с предусловием и постусловием............................................................................................. |
111 |
2.2.16 Функции................................................................................................................................................ |
112 |
2.2.17 Некоторые директивы компилятора ............................................................................................... |
113 |
2.2.18 Библиотека математических функций MATH.h ............................................................................. |
113 |
2.2.19 Функция создания форматированных строк SNPRINTF ................................................................ |
116 |
2.2.20 Ассемблер в Си-программах............................................................................................................... |
118 |
2.3 Интегрированная среда разработки Keil µVision 4 ...................................................... |
119 |
2.3.1 Создание проекта ................................................................................................................................. |
119 |
2.3.2 Создание файла программы................................................................................................................. |
119 |
2.3.3 Настройка проекта.............................................................................................................................. |
120 |
2.3.4 Набор текста программы ................................................................................................................... |
122 |
2.3.5 Компиляция программы........................................................................................................................ |
123 |
2.3.6 Отладка программы............................................................................................................................. |
124 |
2.3.7 Основные отладочные инструменты среды Keil µVision 4 ............................................................. |
127 |
2.3.8 Управление распределением памяти................................................................................................... |
129 |
2.4 Методика отладки программ .......................................................................................... |
131 |
2.4.1 Быстрый поиск ошибок........................................................................................................................ |
132 |
2.4.2 Ввод и вывод дискретных сигналов ..................................................................................................... |
137 |
2.4.3 Таймер-счетчик. Формирование интервалов времени ...................................................................... |
138 |
2.4.4 Таймер-счетчик. Формирование внешних сигналов совпадения....................................................... |
139 |
2.4.5 Таймер-счетчик. Счетчик внешних событий .................................................................................... |
139 |
2.4.6 Таймер-счетчик. Устройство захвата .............................................................................................. |
140 |
2.4.7 Широтно-импульсный модулятор ...................................................................................................... |
140 |
2.4.8 Аналого-цифровой преобразователь ................................................................................................... |
141 |
2.4.9 Цифро-аналоговый преобразователь.................................................................................................. |
142 |
2.4.10 Приемопередатчик SPI ...................................................................................................................... |
142 |
2.4.11 Приемопередатчик I2C ....................................................................................................................... |
143 |
2.4.12 Приемопередатчик UART .................................................................................................................. |
144 |
2.4.13 Часы реального времени..................................................................................................................... |
145 |
2.5 О программировании ARM7 на ассемблере ................................................................. |
146 |
2.5.1 Основные правила записи программ на ассемблере .......................................................................... |
146 |
2.5.2 Псевдокоманды ..................................................................................................................................... |
147 |
2.5.3 Директивы ассемблера......................................................................................................................... |
147 |
2.5.4 Макросы................................................................................................................................................. |
149 |
2.5.5 Пример простой программы ............................................................................................................... |
150 |
2.6 Распространенные средства разработки и отладки...................................................... |
153 |
2.6.1 Демонстрационные платы EA-EDU-001 и EA-EDU-011 .................................................................. |
153 |
2.6.2 Внутрисхемный отладчик J-Link ........................................................................................................ |
156 |
2.6.3 Утилиты программирования ПЗУ LPC Flash Utility и FlashMagic ................................................. |
157 |
2.6.4 Программа-терминал 232Analyzer...................................................................................................... |
158 |
2.6.5 Низкоуровневый редактор диска DMDE ............................................................................................ |
159 |
Часть 3. Решение типовых задач локального управления .................................................... |
160 |
3.1 Формирование временной задержки с помощью цикла.............................................. |
160 |
3.1.1 Задание................................................................................................................................................... |
160 |
3.1.2 Общие рекомендации ............................................................................................................................ |
160 |
3.1.3 Алгоритм программы ........................................................................................................................... |
160 |
3.1.4 Отладка ................................................................................................................................................. |
161 |
3.1.5 Дополнительные сведения о формировании временной задержки .................................................. |
161 |
3.2 Формирование дискретного сигнала с помощью таймера .......................................... |
163 |
3.2.1 Задание................................................................................................................................................... |
163 |
3.2.2 Общие рекомендации ............................................................................................................................ |
163 |
3.2.3 Алгоритм программы ........................................................................................................................... |
164 |
3.3 Опрос дискретного датчика или кнопки ....................................................................... |
165 |
3.3.1 Задание................................................................................................................................................... |
165 |
3.3.2 Общие рекомендации ............................................................................................................................ |
165 |
3.3.3 Алгоритм программы ........................................................................................................................... |
165 |
3.3.4 Отладка ................................................................................................................................................. |
166 |
256
3.4 Опрос состояния механических контактов с подавлением дребезга ......................... |
166 |
3.4.1 Задание................................................................................................................................................... |
166 |
3.4.2 Общие рекомендации ............................................................................................................................ |
167 |
3.4.3 Алгоритм программы ........................................................................................................................... |
169 |
3.4.4 Отладка ................................................................................................................................................. |
170 |
3.5 Опрос клавиатуры с автоповтором ................................................................................ |
170 |
3.5.1 Задание................................................................................................................................................... |
170 |
3.5.2 Общие рекомендации ............................................................................................................................ |
171 |
3.5.3 Алгоритм программы ........................................................................................................................... |
171 |
3.5.4 Отладка ................................................................................................................................................. |
173 |
3.6 Формирование импульсного управляющего сигнала с помощью модуля ШИМ ..... |
174 |
3.6.1 Задание................................................................................................................................................... |
174 |
3.6.2 Общие сведения ..................................................................................................................................... |
174 |
3.6.3 Алгоритм программы ........................................................................................................................... |
175 |
3.6.4 Отладка ................................................................................................................................................. |
176 |
3.6.5 Синхронизация внешним сигналом ...................................................................................................... |
176 |
3.7 Формирование сигналов специальной формы с помощью ЦАП................................ |
177 |
3.7.1 Задание................................................................................................................................................... |
177 |
3.7.2 Основы ................................................................................................................................................... |
177 |
3.7.3 Алгоритм программы ........................................................................................................................... |
179 |
3.7.4 Повышение точности генерирования частоты................................................................................ |
180 |
3.7.5 Выбор числа дискрет............................................................................................................................ |
181 |
3.8 Управление двухфазным шаговым двигателем............................................................ |
182 |
3.8.1 Задание................................................................................................................................................... |
182 |
3.8.2 Общие сведения ..................................................................................................................................... |
182 |
3.8.3 Алгоритм программы ........................................................................................................................... |
183 |
3.9 Применение ШИМ для формирования низкочастотных аналоговых сигналов ....... |
185 |
3.9.1 Задание................................................................................................................................................... |
185 |
3.9.2 Основные сведения................................................................................................................................ |
185 |
3.9.3 Алгоритм основной программы........................................................................................................... |
187 |
3.9.4 Алгоритм процедуры обработки прерывания.................................................................................... |
188 |
3.10 Управление символьным жидкокристаллическим индикатором ............................... |
189 |
3.10.1 Задание................................................................................................................................................. |
189 |
3.10.2 Управление модулем жидкокристаллической индикации ............................................................... |
189 |
3.10.3 Разработка функции управления ЖКИ с ожиданием готовности.................................................. |
191 |
3.10.4 Функция вывода строки символов..................................................................................................... |
193 |
3.10.5 Разработка функции инициализации модуля ЖКИ ......................................................................... |
193 |
3.10.6 Разработка тестовой программы.................................................................................................... |
194 |
3.10.7 Управление ЖКИ с опросом флага готовности .............................................................................. |
194 |
3.10.8 Программирование произвольных символов ..................................................................................... |
194 |
3.11 Управление матричным светодиодным индикатором ............................................... |
196 |
3.11.1 Задание................................................................................................................................................. |
196 |
3.11.2 Основные рекомендации ..................................................................................................................... |
196 |
3.11.3 Алгоритм основной программы......................................................................................................... |
197 |
3.11.4 Алгоритм процедуры обработки прерывания.................................................................................. |
200 |
3.11.5 Реализация движения строки............................................................................................................ |
201 |
3.12 Управление матричным жидкокристаллическим дисплеем ..................................... |
203 |
3.12.1 Управление дисплеем на основе контроллера PCF8833 .................................................................. |
203 |
3.12.2 Построение простейших геометрических фигур ............................................................................ |
206 |
3.13 Измерение постоянного напряжения........................................................................... |
206 |
3.13.1 Задание................................................................................................................................................. |
206 |
3.13.2 Основные рекомендации ..................................................................................................................... |
206 |
3.13.3 Алгоритм основной программы......................................................................................................... |
207 |
3.13.4 Алгоритм процедуры обработки прерывания от АЦП................................................................... |
208 |
3.13.5 АЦП с циклическим опросом нескольких каналов ............................................................................ |
208 |
3.13.6 Автоматический выбор пределов измерения ................................................................................... |
209 |
3.14 Измерение параметров уровня переменного напряжения......................................... |
210 |
3.14.1 Задание................................................................................................................................................. |
210 |
3.14.2 Основные рекомендации ..................................................................................................................... |
210 |
3.14.3 Алгоритм основной программы......................................................................................................... |
211 |
3.14.4 Алгоритм процедуры обработки прерывания.................................................................................. |
213 |
257
3.15 |
Измерение ускорения с помощью трехосевого акселерометра ................................ |
213 |
3.16 |
Измерение интервалов времени с помощью таймера ................................................ |
214 |
3.16.1 Задание................................................................................................................................................. |
214 |
|
3.16.2 Общие рекомендации .......................................................................................................................... |
214 |
|
3.16.3 Алгоритм основной программы......................................................................................................... |
214 |
|
3.16.4 Алгоритм процедуры обработки прерывания.................................................................................. |
216 |
|
3.16.5 Повышение разрешающей способности путем усреднения ........................................................... |
216 |
|
3.16.6 Введение поправок .............................................................................................................................. |
216 |
|
3.17 |
Измерение частоты с помощью счетчика ................................................................... |
217 |
3.17.1 Задание................................................................................................................................................. |
217 |
|
3.17.2 Основные рекомендации ..................................................................................................................... |
218 |
|
3.17.3 Алгоритм программы ......................................................................................................................... |
218 |
|
3.17.4 Повышение точности измерений...................................................................................................... |
220 |
|
3.18 |
Опрос цифрового датчика температуры. Интерфейс I2C .......................................... |
220 |
3.18.1 Задание................................................................................................................................................. |
220 |
|
3.18.2 Общие рекомендации .......................................................................................................................... |
221 |
|
3.18.3 Алгоритм программы ......................................................................................................................... |
223 |
|
3.19 |
Управление внешним портом дискретного ввода-вывода ........................................ |
225 |
3.20 |
Обмен данными с электрически перепрограммируемым ПЗУ ................................. |
225 |
3.20.1 Задание................................................................................................................................................. |
225 |
|
3.20.2 Общие сведения о микросхемах EEPROM ........................................................................................ |
225 |
|
3.20.3 Адресация в микросхемах EEPROM .................................................................................................. |
226 |
|
3.20.4 Порядок чтения EEPROM.................................................................................................................. |
226 |
|
3.20.5 Порядок записи EEPROM................................................................................................................... |
227 |
|
3.20.6 Разработка программы чтения EEPROM ....................................................................................... |
227 |
|
3.20.7 Разработка функции записи блока данных в EEPROM................................................................... |
230 |
|
3.21 |
Интерфейс RS-232. Прием и передача простых команд............................................ |
232 |
3.21.1 Задание................................................................................................................................................. |
232 |
|
3.21.2 Алгоритм программы ......................................................................................................................... |
232 |
|
3.21.3 Автоматическая настройка скорости ............................................................................................ |
234 |
|
3.22 |
Интерфейс RS-232. Передача пакета с использованием прерываний...................... |
234 |
3.22.1 Задание................................................................................................................................................. |
234 |
|
3.22.2 Основные рекомендации ..................................................................................................................... |
234 |
|
3.22.3 Алгоритм программы ......................................................................................................................... |
234 |
|
3.23 |
Интерфейс RS-232. Прием пакета переменной длины .............................................. |
236 |
3.23.1 Задание................................................................................................................................................. |
236 |
|
3.23.2 Основы реализации ............................................................................................................................. |
236 |
|
3.23.3 Алгоритм программы ......................................................................................................................... |
237 |
|
3.24 |
Обмен данными с картой памяти Secure Digital......................................................... |
239 |
3.24.1 Задание................................................................................................................................................. |
239 |
|
3.24.2 Общие сведения о карах FLASH-памяти SD/MMC.......................................................................... |
239 |
|
3.24.3 Команды SD/MMC .............................................................................................................................. |
240 |
|
3.24.4 Процедура инициализации карты...................................................................................................... |
240 |
|
3.24.5 Чтение и запись данных ..................................................................................................................... |
242 |
|
3.24.6 Обработка ошибок ............................................................................................................................. |
243 |
|
3.24.7 Комментарии к алгоритму и программе.......................................................................................... |
244 |
|
Алфавитный указатель управляющих регистров .................................................................. |
251 |
|
Список литературы .................................................................................................................. |
253 |
|
Содержание ............................................................................................................................... |
254 |
258