- •Часть 1.
- •Гомель 2008
- •Лабораторная работа № 1 Аппаратные и программные средства отладки eZdsp f2812 и Code Composer Studio
- •Теоретические сведения
- •Ход работы
- •Задание для самостоятельной работы
- •Ход работы
- •Часть I
- •Часть II
- •Ход работы
- •Лабораторная работа № 4 Исследование модуля Менеджера Событий
- •Теоретические сведения
- •Порядок выполнения лабораторной работы
- •Часть I. Формирование сигналов звуковой частоты при помощи прямоугольных импульсов
- •Часть II. Формирование сигналов звуковой частоты при помощи синусоидальных импульсов
- •Лабораторная работа № 5 Исследование модуля ацп
- •Теоретические сведения
- •3. Формат регистров модуля ацп
- •Регистр числа каналов для преобразования (adcmaxconv)
- •Буферный регистр результата ацп (adcresulTn)
- •Порядок выполнения лабораторной работы №5
- •Часть I
- •1. Создание проекта.
- •2. Инициализация системы (подпрограмма “InitSystem()”).
- •3. Инициализация портов (подпрограмма “Gpio_select()”).
- •4. Инициализация модуля Менеджера Событий.
- •5. Инициализация модуля ацп.
- •6. Настройка прерываний.
- •7. Получение результатов преобразования ацп (подпрограмма “adc_isr()”).
- •8. Вывод показаний ацп на светодиодные индикаторы
- •9. Задание для самостоятельной работы
- •Содержание
Ход работы
Часть I
В части I лабораторной работы необходимо разработать программу «бегущие огни», задавая направление движения: сначала – от края к краю (см. рис. 2.8а), а потом, зажигая по два светодиода, – от периферии к центру (см. рис. 2.8б). Светодиоды подключены к линиям порта GPIOB7 – GPIOB0 (1 – горит, 0 – погашен), а линии порта GPIOB15 – GPIOB8 соединены с ключами (1 – ключ замкнут, 0 – разомкнут).
1
.
Создание нового проекта.
В Code Composer Studio создаем новый проект Lab2.pjt. В поле Project Name записываем название проекта «Lab2». В поле Location указывается путь, по которому будет находиться проект – E:\DspUser\Lab2.
1.1. Для упрощения работы файл под именем «_lab2_.c» с заготовкой текста программы имеется на диске в папке «E:\DspUser\Templates». Копируем данный файл в папку проекта E:\DspUser\Lab2 и переименовываем в «Lab2.c». Добавляем в проект и открываем в окне редактора данный файл.
1.2. Добавляем управляющий файл линкера, библиотеки (рекомендуется для исключения ошибок пути к файлам, указанные ниже, копировать в диалоговое окно «Add files to Project»):
C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c
C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd
C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\DSP281x_Headers_nonBIOS.cmd
C:\CCStudio_v3.1\C2000\cgtools\lib\rts2800_ml.lib
2. Настройка параметров проекта.
2.1. Включаем в проект заголовочные файлы, для этого выбираем Project → Build Options, в закладке Compiler выбираем Preprocessor и в поле Include Search Path (-i) вводим:
C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include
2.2. Добавление библиотек и создание стека.
Подключаем Си-библиотеки:
Project → Build Options → Linker → Library Search Path: С:\CCStudio_v3.1\C2000\cgtools\lib
Project → Build Options → Linker Include Libraries: rts2800_ml.lib
Задаем стек глубиной 0х400:
Project → Build Options → Linker → Stack Size: 0x400
3. Инициализация системы.
Открываем файл Lab2.c и переходим к подпрограмме «InitSystem()».
3.1. Запрещаем работу сторожевого таймера и сбрасываем бит флага WD (присваиваем необходимое значение регистру WDCR).
3.2. Программируем регистр SCSR на сброс ЦПУ при переполнении Watchdog-таймера (бит WDENINT).
3.3. В регистр PLLCR заносим код, необходимый для преобразования частоты кварцевого резонатора 30 МГц во внутреннюю частоту SYSCLKOUT работы процессора 150 МГц (см. рис. 2.2).
3.4. Заносим в высокоскоростной предделитель (HISPCP) коэффициент деления 2, а в низкоскоростной (LOSPCP) – 4 (см. рис. 2.3).
3.5. Запрещаем работу всех периферийных устройств (PCLKCR).
4. Настройка портов.
Переходим к подпрограмме «Gpio_select()».
4.1. Настраиваем все выводы на работу в качестве портов (GPxMUX).
4.2. Настраиваем все линии портов A, D, E, F, G на ввод (GPxDIR).
4.3 Настраиваем линии порта GPIOB15 – GPIOB8 на ввод, а GPIOB7 – GPIOB0 на вывод.
4.4. Сбрасываем биты регистров GPxQUAL портов A, B, D, E в ноль.
5. Компоновка и загрузка выходного файла в отладочный модуль ЦСП.
5.1. Компонуем проект: Project → Build. При наличии ошибок, исправляем их.
5.2 Загружаем выходной файл: File → Load Program → Debug\ lab2.out.
6 Тестирование программы.
6.1. Сбрасываем ЦСП: Debug → Reset CPU, Debug → Restart.
6.2. Устанавливаем программный счетчик на точку «void main (void)» основной программы. Debug → Go main.
6.3. Запускаем программу: Debug → Run. Проверяем правильность работы, наблюдая за светодиодами. Также можно отслеживать правильность выполнения программы, запуская ее в режиме «Animate» и просматривая в отдельном окне, как изменяется содержимое выводов порта GPIOB.
7. Работа со сторожевым таймером.
7.1. В подпрограмме «InitSystem()» разрешаем работу сторожевого таймера.
7.2. Компонуем проект и тестируем программу.
7.3. В подпрограмме «delay_loop()» записываем: SysCtrlRegs.WDKEY = 0x55, SysCtrlRegs.WDKEY = 0xAA и повторяем пункт 7.2.
8. Работа с двумя светодиодами.
8.1. Копируем содержимое файла «Lab2.c» в новый файл, который называем «Lab2a.c».
8.2. Преобразуем программу Lab2a.c так, чтобы одновременно зажигались два светодиода в направлении от периферии к центру.
8.3. Добавляем в проект «Lab2a.c» и удаляем «Lab2.c» (щелкаем правой клавишей мышки и выбираем Remove from project).
8.4. Компонуем проект и тестируем программу.
