Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Аппаратное обеспечение -> Мартин Т. -> "Микроконтроллеры ARM7. Cемейство LPC2000 компании Philips Вводный курс" -> 76

Микроконтроллеры ARM7. Cемейство LPC2000 компании Philips Вводный курс - Мартин Т.

Мартин Т. Микроконтроллеры ARM7. Cемейство LPC2000 компании Philips Вводный курс — М.: Додэка 21, 2006. — 240 c.
ISBN 5-94120-104-4
Скачать (прямая ссылка): nicrokontrolleriarm7semeystvo2006.djvu
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 86 >> Следующая

Если вы используете симулятор, то это же поведение вы можете наблюдать в окне логического анализатора.
Удалите макросы IDISABLE и IENABLE из обработчика и посмотрите, как в этом случае будет вести себя программа.
207
Глава 5. Учебное пособие по средствам разработки компании Keil
Упражнение 15. Порты ввода/вывода общего назначения
В этом упражнении мы будем использовать выводы портов ввода/вывода общего назначения. Ряд выводов будут сконфигурированы как выходы, после чего на них последовательно будут выдаваться импульсы ВЫСОКОГО уровня. Откройте проект, расположенный в папке «C:\work\EX15-GPIO».
Добавьте в файл «шаіп.с» включаемый файл с определениями РСФ микроконтроллеров LPC21xx:
#include <LPC21xx.H>
Занесите требуемое значение в регистр направления передачи данных, чтобы выводы Р1.16...Р1.23 функционировали как выходы:
I0DIR1 = OxOOFFOOOO;
Допишите подпрограмму ChangeGPIOPinState(), чтобы она сбрасывала и устанавливала соответствующие выводы:
I0CLR1 = -state;
IOSETl = state;
Скомпилируйте программу и загрузите ее в отладчик.
Если вы запустите программу на плате МСВ2100, то увидите бегущий огонек, формируемый линейкой светодиодов.
Если вы используете симулятор, выполняйте программу в пошаговом режиме и наблюдайте за ее работой, отслеживая состояние контактов ввода/вывода с помощью окна GPIO 1.
Упражнение 16. Функция захвата (capture)
В этом упражнении мы будем использовать таймер 0 для измерения времени между запуском таймера и появлением нарастающего фронта сигнала на выводе Р0.2. Поскольку на плате МСВ2100 нет кнопки на входе канала захвата, которая позволила бы нам сгенерировать импульс, будем использовать симулятор. Версия для аппаратного отладчика тоже имеется, однако для ее корректной работы вам потребуется доработать плату. В этом случае работу программы можно будет контролировать с помощью осциллографа по выходным сигналам:
Pclk = 30 МГц,
Pciocktick = 0.033 МГц.
Откройте проект, расположенный в папке «C:\work\EX16-TimerCapture». Внесите в файл «шаіп.с» следующие изменения.
Разрешите работу вывода Р0.2 в качестве входа 0-го канала захвата:
PINSEL0 = 0x00000020;
Загрузите в предделитель значение, необходимое для получения микросе-кундных интервалов:
T0PR = 0х0000001Е;
Сбросьте счетный регистр и предделитель таймера:
208 T0TCR = 0x00000002;
Использование аппаратного JTAG-отладчика ULINK
Сконфигурируйте 0-й канал захвата для захвата по нарастающему фронту:
T0CCR = 0x00000005;
Разрешите работу таймера:
T0TCR = 0x00000001;
В подпрограмме обработки прерывания скопируйте захваченное значение во временную переменную:
value = T0CR0;
Скомпилируйте программу и загрузите ее в отладчик.
Проконтролируйте работу прерывания по захвату, устанавливая точку останова на обработчик прерывания и выполняя программу.
В версии проекта для симулятора в инструментарий был добавлен сценарий, генерирующий импульс на выводе Р0.2. При использовании платы МСВ2100 необходимо подтянуть вывод порта к линии Vcc, подключив резистор сопротивлением 10 кОм.
В симуляторе убедитесь, что изменение состояния таймера происходит с требуемой частотой. Для этого выполняйте программу в пошаговом режиме до изменения состояния таймера и измерьте временной интервал с помощью счетчика в окне регистров (Рис. 5.55).
Счетный регистр таймера
Значение таймера при захвате —
г Match Channels j MCR: рЗхООШОООО : MR0; (0x0000(3000 j Г* Interrupt on MRO ; Г Reset on MRO Г Stop on MRO
I EMCO: j Nothing ЧІ
Г External Match 0 F MRO Interrupt
Capture Chamefs----------
EMR:
MR1:|0x00000660
Г Interrupt on MR1 Г Reset on MR1 Г" StoponMRI
EMC1; ^NothingНІ EMC2 iNothing^l
Г External Match 1 f~ External Match 2
Г MR1 Interrupt P MR2 interrupt
MR2 [6x00000000...... MR3. [оЖюбюГ
Г Interrupt on MR2 Г Reset on MR2 Г Stop on MR2
Г Interrupt on MR3 P Reset on MR 3 Г Stop on MR3
EMC3: jNothing^l
Г External Match 3 Г MR3 Interrupt
CCR: !o7o0000005 CR0:
j(M)GQA65D7 CR1:(S0000000T
CR2:l0x00000000
Г Rising Edge 2 Г Falling Edge 2
CR3: ЙЮОООШГ
Г Rising Edge З Г Falling Edge 3
F Rising Edge 0 Г Rising Edgel
Г FallingEdgeQ Г* FalngEdgel і rawngtogec 5 тампдсодел
p Interrupt on Event 0 Г” Interrupt on Event 1 Г~ Interrupt on Event 2 f~ Interrupt on Evert 3
17 CAPOQ Г f ' Г ’г Г > f~'~ <
P7 CR0 Interrupt Г CR1 Interrupt f~ CR2 interrupt f“ CR3 interred
Puc. 5.55. Окно регистров таймера
Упражнение 17. Функция совпадения (match)
В этом упражнении мы сконфигурируем таймер для генерации ШИМ-сигнала, управляемого по одному фронту, с использованием двух каналов совпадения. Нулевой канал будет использоваться для формирования общего периода ШИМ-сигнала. При событии совпадения он будет сбрасывать таймер и генерировать прерывание. Первый канал будет использоваться для управления скважностью сигнала. При совпадении он будет сбрасывать выход 1-го канала совпадения. Устанавливаться этот вывод будет в начале периода (при прерывании).
209
Глава 5. Учебное пособие по средствам разработки компании Keil
Откройте проект, расположенный в папке «C:\work\ EX17-TimerMatch». Внесите в файл «шаіп.с» следующие изменения.
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 86 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.