Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мук па лабараторных работах.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Ход работы

Часть 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. Компонуем проект и тестируем программу.