Скачиваний:
61
Добавлен:
21.03.2016
Размер:
1.69 Mб
Скачать

Лабораторная работа 2:

Вывод через цифровые порты

Цель : ВоспользоватьсяB0...8-юB7индикаторами (LED), присоединенными к выводам GPIO B0-B7, для демонстрации поочередного зажигания светодиодов слева направо и обратно

Файлы проекта:

1. Си – исходный файл: “Lab2.c”

2. Файл определения регистров:

“DSP281x_GlobalVariableDefs.c

3. Командный файл компоновки: EzDSP_RAM_lnk.cmd

4. Библиотека реального времени

“rts2800Воспользуйтесьml.lib программным циклом для организации пауз

Лаб. работа Решение 3 - 22

Лабораторная работа 2:

Вывод через цифровые порты

Регистры - лабораторнойB0...B7работы 2:

Инициализация DSP:

:

WDCR

 

• Управление сторожевым таймером (WD)

 

• Тактовый регистр PLL

:

PLLCR

 

• Делитель для высокой тактовой частоты :

HISPCP

 

• Делитель для низкой тактовой частоты

:

LOSPCP

• Регистр управления тактами периферии

:

PCLKCR

• Системный регистр управления и статуса:

SCSR

 

Доступ к индикаторам (LED) (B0...B7):

:

GPB

• GPB Регистр мультиплексора

:

• GPB Регистр направления

GPBDIR

• GPB Регистр конфигурации

:

GPBQUAL

• GPB Регистр данных

:

GPBDAT

3 - 23

Регистры определены в файле

‘DSP281x_GlobalVariableDefs.c’

•Данный файл определяет все глобальные переменные периферии.

•Файл использует предопределенные структуры (смотри ..\include ) и объекты, например “GpioDataRegs” :

#pragma

DATA_SECTION(GpioDataRegs,"GpioDataRegsFile"); volatile struct GPIO_DATA_REGS GpioDataRegs;

или “GpioMuxRegsFile” :

#pragma

DATA_SECTION(GpioMuxRegs,"GpioMuxRegsFile"); volatile struct GPIO_MUX_REGS GpioMuxRegs;

•Структуры объединяют все регистры одной

группы, например : GpioDataRegs.GPBDAT

 

Для каждого регистра существует как общий

 

доступ к 16 битам (“all”) так и к одному биту

3 - 24

(“bit”) , например :

Регистры определены в файле

‘DSP281x_GlobalVariableDefs.c’

•Имя DATA_SECTION ( ”GpioDataRegsFile” ) используется компоновщиком, в соответствии с командным файлом компоновки, для связи секции переменных ( ”GpioDataRegs”) с физическим адресом в памяти.

•Основной заголовочный файл ‘DSP281x_Device.h’ включает все предопределенные структуры для всей периферии ЦП.

•Все, что необходимо выполнить:

(1)сделать ‘DSP281x_GlobalVariableDefs.c’ частью проекта

(2)включить ‘DSP281x_Device.h’ в основной Си 3 - 25

Лабораторная работа 2A

Измените исходный Си-код:

включите два LED индикатора ( B7 и B0 )

пусть индикаторы зажигаются попарно,

двигаясь к центру ( B6 и B1, B5 и B2, … )

продолжайте перемещение, до тех

пор пока не загорятся центральные

повторите этоB7в обратноми B0 = включенопорядке

B6 и B1 = включено

B5 и B2 = включено

B4 и B3 = включено

3 - 26

Лабораторная работа 3: Вывод

через цифровые порты GPIO Цель: B15..B8

Подключить 8 DIP-переключателей к порту GPIO B (B15...B8)

Подключить 8 LED индикаторов к порту GPIO B (B7...B0)

Прочитать состояние переключателей и отобразить их статус на LED индикаторах

Файлы проекта:

 

1. Исходный Си-файл:

 

“Lab3.c”

 

2. Файл опред. Регистров:

 

“DSP28_GlobalVariableDefs.c”

 

3. Командный файл компоновки:

Решение 3 - 27

“EzDSP_RAM_lnk.cmd”

Лабораторная работа 3A

“Knight - Rider” плюс управление частотой:

измените лабораторную работу 2 :

выполните чтение состояния DIP

переключателей с входов ( B15-B8 )

изменяйте частоту моргания LED

индикаторов (B7-B0) в зависимости от состояния DIP переключателей, например изменяйте интервал моргания LED индикаторов от 10 сек до 0.01 сек.

включите сторожевой таймер (WD) !

убедитесь, что в основном цикле

Решение

программы сторожевой таймер (WD)3 - 28

Лабораторная работа 3A

 

(продолжение)

 

Настройка сторожевого таймера :

 

 

Не запрещайте сторожевой таймер

 

(WD) !

 

Внутри основного цикла программы

 

выполните команду сброса

 

сторожевого таймера (WDKEY)

 

прежде, чем он переполнится.

 

Внесите программную задержку в

 

функцию и экспериментируйте с

 

различным периодом задержки.

 

Чему равен период, прежде чем

 

сторожевой таймер (WD) сбросит

3 - 29

 

Лабораторная работа 3B

Добавить управление стартом и остановкой

(воспользуйтесь лабораторной работой 2 для

начала)

GPIO-D1 и D6 присоединены к двум

кнопкам. Если они нажаты, будет

прочитано значение 0, иначе 1.

Используйте D1 для запуска

моргания LED индикаторами и D6

для остановки. Если D1 нажать

снова, моргание должно быть

продолжено снова.

Решение 3 - 30

Соседние файлы в папке C2000WEB_rus