Порядок выполнения лабораторной работы №5



 

Часть I

Создание проекта.

1.1 В Code Composer Studio создаем новый проект Lab6.pjt. Копируем из папки c:\tidcs файл lab6.c в папку с созданным проектом. Добавляем lab6.c в проект.

1.2 Добавляем в проект следующие файлы: C :\ tidcs \ c 28\ dsp 281 x \ v 100\ DSP 281 x _ headers \ source \ DSP 281 x _ GlobalVariableDefs . c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\ F2812_EzDSP_RAM_lnk.cmd

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\ F2812_Headers_nonBIOS.cmd

C:\ti\c2000\cgtools\lib \rts2800_ml.lib

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source \DSP281x_PieCtrl.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source \DSP281x_PieVect.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source \DSP281x_DefaultIsr.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source \DSP281x_Adc.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source \DSP281x_usDelay.asm

1.3 Включаем в проект заголовочные файлы: Project → Build Options, в закладке Compiler выбираем Preprocessor и в поле Include Search Path (-i) вводим: C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include.

    1.4 Задаем глубину стека: Project → Build Options → Linker → Stack Size: 0x400.

        

Инициализация системы (подпрограмма “ InitSystem ()”).

    2.1 Разрешаем работу сторожевого таймера (см. лаб.раб. №2), устанавливаем коэффициентом деления 64 (регистр WDCR), сбрасываем сторожевой таймер (регистр SCSR).

    2.2 Настраиваем ЦСП на частоту 150 МГц (регистр PLLCR), в предделитель высокоскоростного таймера заносим 2.

    2.3 Разрешаем тактирование модуля АЦП и Менеджера Событий (регистр PCLKCR).

 

Инициализация портов (подпрограмма “ Gpio _ select ()” ).

3.1 Настраиваем все выводы на работу в качестве портов (регистр GPxMUX) (см. лаб.раб. №2).

    3.2. Настраиваем порты A, D, E, F, G на ввод (регистр GPxDIR).

    3.3 Настраиваем линии порта GPIOB15 – GPIOB8 на ввод, а GPIOB7 – GPIOB0 на вывод.

    3.4 Сбрасываем биты регистров GPxQUAL в ноль.

 

Инициализация модуля Менеджера Событий.

    4.1 Запрещаем выходы сравнения и выбираем полярность выходов сравнения принудительный низкий уровень (регистр GPTCONA) (см. лаб.раб. №3).

    4.2 В регистре T1CON выбираем: непрерывный режим счета вверх, синхронизация от внутреннего источника, запрещаем режим сравнения, разрешаем работу GP таймера 1, задаем коэффициент деления 128.

    4.3 Разрешаем запуск АЦП от Менеджера Событий А (регистр GPTCONA).

4.4 Рассчитываем значение периода (T1PR), зная, что  = 10 Гц:

 

Инициализация модуля АЦП.

5.1 Задаем: двух последовательный режим, запрещаем непрерывный режим, коэффициент деления 1 (регистр ADCTRL1).

5.2 Записываем количество преобразований 2 (регистр ADCMAXCONV).

5.3 Выбираем каналы ADCIN_A0 и ADCIN_B0 (регистр ADCCHSELSEQ1).

5.4 Разрешаем преобразования от Менеджера Событий А, разрешаем прерывания АЦП в конце каждой последовательности (регистр ADCTRL2)

5.3 Задаем делитель частоты высокоскоростного таймера равный 4.

 

Настройка прерываний.

6.1 Указываем адрес вектора прерываний (регистр ADCINT).

6.2 Разрешаем прерывание 6 группы 1 (регистр PIEIER1).

6.3 Вызываем подпрограммы инициализации: модуля прерывания периферийных устройств “InitPieCtrl()”, вектора прерывания периферийных устройств “InitPieVectTable()”, модуля АЦП “InitAdc()”.

 

Получение результатов преобразования АЦП (подпрограмма “ adc _ isr ()”).

7.1 Считываем результаты преобразования из регистров ADCRESULT0 и ADCRESULT1 и сохраняем их соответственно в переменные Voltage_A0 и Voltage_B0. Так как данные в регистрах ADCRESULTn выровнены к левому краю, необходимо произвести сдвиг данных на четыре разряда вправо.

7.2 Подготавливаем АЦП к следующему преобразованию: сбрасываем последовательность SEQ1 (регистр ADCTRL2), сбрасываем бит прерывания SEQ1 (регистр ADCST), подтверждаем прерывания (регистр PIEACK).

 


Дата добавления: 2019-07-15; просмотров: 168; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!