Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Настройка приема сообщения




1) Создание нового проекта.

1.1) В Code Composer Studio создать новый проект Lab10.pjt. Открыть файл Lab10.c и сохранить его в E:\C281x\Labs\Lab10\lab10.c.

1.2) Добавить в проект файлы:

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c

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

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

C:\ti\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 → Stack Size: 0x400.

2.3) Закрыть Build Options, кликнув OK.

3) Преобразование файла Lab9.c.

3.1) Открыть файл Lab10.c

Удалить те части программы, которые не будут использоваться в данной лабораторной работе: подпрограмму “cpu_timer0_isr()” и массив LED[8].

3.2) Также от начала основной программы до цикла while(1) удалить все вызовы подпрограмм InitSystem() и GpioSelect().

Задать новые инструкции для сторожевого таймера:

EALLOW;

SysCtrlRegs.WDKEY = 0x55;

SysCtrlRegs.WDKEY = 0xAA;

EDIS;

3.3) Создать новую структуру в основной программе “ECanaShadow”:

struct ECAN_REGS ECanaShadow;

3.4) Перейти к подпрограмме «Gpio_select()». Настроить периферийные функции CANTxA и CANRxA:

GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1;

GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1;

3.5) В конце кода программы создать подпрограмму InitCan(), с помощью которой осуществить следующие шаги:

3.5.1) В регистрах “ECanaRegs.CANTIOC” и “ECanaRegs.CANRIOC” установить биты “TXFUNC” и “RXFUNC”.

3.5.2) Включить режим HECC модуля CAN (регистр “ECanaRegs.CANMC”).

3.5.3) Для получения доступа к регистрам времени установить бит “CCR” регистра “ECanaRegs.CANMC”.

3.5.4) Для передачи запроса инициализации CAN установить флаг “CCE” регистра “ECanaRegs.CANES”.

3.5.5) Установить параметры “BRP”, “TSEG1” и “TSEG2” регистра “ECanaRegs.CANBTC”.

3.5.6) После установления параметров регистра “ECanaRegs.CANBTC” запретить к нему доступ - очистить бит CCR регистра “ECanaRegs.CANMC”.

3.5.7) Отключить все mailboxes кроме того, который отправляет сообщение, установкой в 0 полей регистра “ECanaRegs.CANME”.

3.6) Для подготовки mailbox#1 к приему сообщения сделать следующее:

3.6.1) Установить идентификатор сообщения 0x10000000 (бит “IDE” регистра “EcanaMboxes.MBOX1.MSGID”).

3.6.2) Для установления mailbox#1 принимающим установить бит “MD1” регистра “ECanaRegs.CANMD”. Используя буферные регистры «ECanaShadow.CANMD.all» осуществить запись в регистр “ECanaRegs.CANMD”:

ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;

ECanaShadow.CANMD.bit.MD1 = 1;

ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

Активировать mailbox#5:

ECanaShadow.CANME.all = ECanaRegs.CANME.all;

ECanaShadow.CANME.bit.ME1 = 1;

ECanaRegs.CANME.all = ECanaShadow.CANME.all;

4) Организация цикла опроса mailbox#1

4.1) Организовать цикл опроса и приема сообщения. Когда сообщение придет, бит “RMP1” регистра “ECanaRegs.CANRMP” станет равным 1.

С помощью цикла do-while организовать ожидание RMP1=1.

Примечание 1. Рекомендуется скопировать регистры “ECanaRegs.CANRMP” в буферные “ECanaShadow.CANRMP”.

Примечание 2. В цикле ожидания не забывать активировать сторожевой таймер.

4.2) Как только бит RMP1 станет равным 1следует отправить нулевой байт на порты GPIO-B7…B0:

GpioDataRegs.GPBDAT.all = ECanaMboxes.MBOX1.MDL.byte.BYTE0;

4.3) Сбросить бит RMP1, записав в него «1»:

ECanaShadow.CANRMP.bit.RMP1 = 1;

ECanaRegs.CANRMP.all = ECanaShadow.CANRMP.all;

5) Тестирование программы.

5.1) Сбросить ЦСП: Debug → Reset CPU, Debug → Restart.

5.2) Перейти к главной подпрограмме: Debug → Go main.

5.3) Запустить программу: Debug → Run. [6]

 





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


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 255 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

2565 - | 2225 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.