Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?

Категории:

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






Лабораторная работа 1





Тема: введение в среду разработки Code Composer Studio V4. Изучение принципа работы с портами контроллера MSP430G2211, MSP430F5438A.

Цель работы: научиться программировать порты ввода вывода контроллера MSP430G2211, MSP430F5438A, изучить возможные способы осуществления программной задержки на выполнение команды.

Ход работы.

После установки необходимого программного обеспечения перед пользователем появляется окно программы, показанное на рисунке 1.15 , где ее рабочее поле разделено на области:

– С/С++ Projects – область программы, в которой отображается дерево (список) активных проектов;

– Target Configuration ­– область в которой устанавливаются параметры подключения контроллера к конкретному ПК и его марка;

– Debug – область в которой происходит запуск программы и ее отладка;

– Disassembly – область в которой отображается код программы на языке ассемблер и адреса ячеек памяти к которым обращается данная программа;

– Problems – область в которой отображаются программы после ее компиляции.

В программе есть несколько режимов работы, отладка, настройка и написание программного кода. Для переключения между режимами используется двойную стрелку в верхнем правом углу окна. Переключение имеет вид изображенный на рисунке 1.16.

После переключения в режим Debug программа примет вид (рисунок 1.17).

Важно учесть что для работы с неактивными проектами и изменения конфигурации оборудования необходимо вернуться в режим С/С++ .

Для создания нового проекта необходимо зайти в меню File – New – CCS Project (рисунок 1.18)

 

Рисунок 1.15 – Вид окна программы Code Composer Studio v4

 

 

 

Рисунок 1.16 – Переключение между рабочими режимами

 

Рисунок 1.17 – Вид программы в режиме Debug

 

Рисунок 1.18 – Создание нового проекта

Перед пользователем появляется окно (рисунок 1.19), здесь необходимо назвать свой проект (важно что можно использовать только латинские буквы и цифры без пробелов) В области Location можно задать место на диске, где будет хранится проект (важно что адрес не должен содержать русских букв и пробелов иначе программа может выдать ошибку) нажимаем next. Далее (рисунок 1.20 ) в области Project Type указываем марку ядра MSP430 и жмем «next». В следующей области (рисунок 1.21) указываем марку нашего контроллера далее «next» и для завершения создания проекта нажимаем «Finish» (рисунок 1.22).



 

 

Рисунок 1.19 – Окно выбора локации для хранения проекта

 

 

Рисунок 1.20 – Окно выбора семейства контроллера

 

Рисунок 1.21 – Окно выбора марки контроллера

 

 

Рисунок 1.22 – Окно завершения конфигурации нового проекта

После, необходимо создать файл в котором будет храниться исходный код программы, для этого необходимо перейти в меню File – New – Source File. Появится окно, изображенное на рисунке 1.23. Здесь необходимо указать директорию, где будет сохранен файл (Source Folder) и имя файла ( необходимо указать расширение файла для этого после названия ставим точку и пишем латинскую литеру «.с» ) после – «Finish» и новый файл подключается к указанному в Source Folder проекту. После создание проекта его файлы будут отображаться в области С/С++ Project(рисунок 1.24) . Окно области для написания программы будет отображаться под именем созданного файла (рисунок 1.25).

 

 

Рисунок 1.23 – Окно создания файла программы

 

Рисунок 1.24 – Окно программы с созданным новым проектом

 

Рисунок 1.25 – Окно программы с исходным программным кодом

 

В качестве примера, ниже, приведена программа для управления выводом Р1.0 к которому подключен светодиод.

 

#include "msp430f5438.h"

int main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

P1DIR |= 0x01; // Set P1.0 to output direction

for (;;)

{

volatile unsigned int i; // volatile to prevent optimization

P1OUT ^= 0x01; // Toggle P1.0 using exclusive–OR

i = 10000; // SW Delay

do i––;

while (i .= 0);

}

}

 

Строка 1. #include "msp430f5438.h". Этот заголовочный файл содержит макроопределения для более удобной работы с регистрами и прочим.

Строка 4. «WDTCTL = WDTPW + WDTHOLD» В этой строке происходит выключение сторожевого таймера. Здесь «WDTCTL» – регистр управления таймером, WDTPW – пароль таймера, «WDTHLD» – бит отключения таймера.

Строка 5. «P1DIR |= 0x01» Здесь мы указываем контроллеру, что первую ногу первого порта необходимо сделать выходом. «P1DIR» – регистр управления направлением вывода для всего порта 1, а не для первой ноги. Из этого следует, что после команды «P1DIR |= 0x41 (41h = 1000001b)» контакты процессора «P1.0» и «P1.6» станут выходами.

Стока 6. «for (;;)» Эта запись аналогична «while (true)» или «while (1)». Последние два варианта являются более простыми для понимания, а первый – соответствие стандарту языка.

Строка 8. «volatile unsigned int i» Создаём переменную для цикла задержки (строки 10, 11, 12). Ключевое слово «volatile» сообщает компилятору о том, что значение переменной «i» может измениться в любой момент.



Строка 9. «P1OUT ^= 0x01» В этой строке мы инвертируем сигнал на «P1.0».

Строки 10, 11 и 12. Запуск цикла задержки.

В следующей программе светодиоды поочередно зажигаются. Согласно описанию устройства, светодиоды подключены к выводам 1 и 6 порта 1.

 

#include "msp430G2211.h"

int main(void)

{

WDTCTL = WDTPW + WDTHOLD;//Останов сторожевого таймера

P1DIR |= 0x41;// 0x41 == 0b01000001. P1.0 и P1.6 – на выход

P1OUT |= 0x40;// 0x40 == 0b01000000. Зажигаем красный диод

for (;;)

{

volatile unsigned int i;

P1OUT ^= 0x41;//Инвертируем сигналы на P1.0 и P1.6.

i = 10000;//Задержка

do i––;

while (i .= 0);

}

}

 

В строке 6 происходит предварительное изменение состояния выводов порта 1. После этой операции P1OUT == 0b01000000. А после операции в строке 10 значение P1OUT = 0b00000001.

Задания в соответствие с вариантом указаны в таблице 1.12

 

Таблица 1.12 – Задание для лабораторной работы 1

№ варианта Задание
Для контроллера MSP430G2211 Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя выражение if(){}else{};
    Для контроллера MSP430G2211 Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя условный цикл while(){};
Для контроллера MSP430G2211 Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя условный цикл while(){}; В качестве задержи использован цикл do { } while( );
Для контроллера MSP430G2211 Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя условный цикл while(){}; Используется __delay_cycles( 1000000 ); в качестве задержки 1с
Для контроллера MSP430G2211 Мигает пять раз зеленый диод с интервалом 1с потом зажигаются оба конец цикла. Используя условный цикл while(){}; Используется __delay_cycles(); в качестве задержки
Для контроллера MSP430G2211 Поочередное мигание диодов с периодом 0,5с в течении 10 с
Для контроллера MSP430G2211 Оба диода горят в течении 15с потом мигают поочередно с периодом 1с
Для контроллера MSP430G2211 Оба диода мигают в течении 5 с с периодом 0,5с потом зажигаются на 3 цикл повторяется
Для контроллера MSP430G2211 Сперва горит красный диод в течении 4с потом зеленый в течении 4с потом зажигаются оба на 2с, цикл повторяется
Для контроллера MSP430G2211Мигают оба диода 12 раз с периодом 0,2с потом 5 раз мигает красный с той же периодом потом зеленый и цикл повторяется
Для контроллера MSP430G2211Диоды горят в течении 0,3с в следующей последовательности: зеленый потом красный потом оба цикл повторяется
Для контроллера MSP430G2211Мигает красный диод с периодом 0,2с и на каждое 10 зажигание красного зажигается зеленый

Продолжение таблицы 1.12

  Для контроллера MSP430F5438A Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя выражение if(){}else{};
  Для контроллера MSP430F5438A Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя условный цикл while(){};
Для контроллера MSP430F5438A Мигает пять раз зеленый диод и один раз красный потом еще пять повторений зеленого и красный гаснет цикл повторяется. Используя условный цикл while(){}; В качестве задержи использован цикл do { } while( );
Для контроллера MSP430F5438A Поочередное мигание диодов с периодом 0,5с в течении 10 с
Для контроллера MSP430F5438A Оба диода горят в течении 15с потом мигают поочередно с периодом 1с
Для контроллера MSP430F5438A Оба диода мигают в течении 5 с с периодом 0,5с потом зажигаются на 3 с, цикл повторяется
Для контроллера MSP430F5438A Сперва горит красный диод в течении 4с потом зеленый в течении 4с потом зажигаются оба на 2с цикл повторяется
Для контроллера MSP430F5438A Мигают оба диода 12 раз с периодом 0,2с потом 5 раз мигает красный с той же периодом потом зеленый и цикл повторяется
Для контроллера MSP430F5438A Диоды горят в течении 0,3с в следующей последовательности: зеленый потом красный потом оба цикл повторяется
Для контроллера MSP430F5438A Мигает красный диод с периодом 0,2с и на каждое 10 зажигание красного зажигается зеленый

Отчет должен содержать: название лабораторной работы, номер варианта, тема, цель, ход работы, выводы.

В ходе работы необходимо привести блок схему алгоритма программы, листинг готовой программы с построчным описанием.

 






Date: 2015-06-06; view: 273; Нарушение авторских прав

mydocx.ru - 2015-2019 year. (0.011 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию