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

Тема 1.4.Среды программирования

Первое, что стоит освоить в микроконтроллере — это работа с портами. Давайте рассмотрим небольшой пример.

#include "msp430f2274.h"

void main( void )

{

WDTCTL = WDTPW + WDTHOLD;

P1DIR &= ~BIT2;

P1REN |= BIT2;

P1DIR |= BIT1 + BIT0;

while(true)

{

if(P1IN & BIT2)

{

P1OUT |= BIT1;

P1OUT &= ~BIT0;

}

else

{

P1OUT |= BIT0;

P1OUT &= ~BIT1;

}

}

}

PxDIR отвечает за направление порта 1. Когда конкретный бит данного регистра установлен в 0, соответствующий пин работает на вход. И наоборот, если соответствующий бит установлена в 1, то пин работает на выход. В примере фигурируют 3 пина: P1.2 — кнопка, P1.0 — красный светодиод, P1.1 — зеленый светодиод.

PxREN включает внутренний резистор подтяжки. Кнопка замыкает пин на землю, и, соответственно, переводит его в состояние нуля. Когда кнопка не нажата пин ни к чему не подключен и для обеспечения логической единицы на нём требуется подключить его через резистор к питанию, что и делает регистр P1REN.

PxIN и PxOUT содержат в себе состояние пинов порта. Устанавливая ноль или единицу в регистр PxOUT мы меняем напряжение на лапке микроконтроллера, тем самым включая и выключая светодиод. Читая конкретный бит из регистра PxIN мы получаем логический сигнал, который сейчас подан на пин.

PxSEL выбирает функцию пина. В datasheet на изображении микроконтроллера функции обычно указывают через знак «/».

Константы BIT0..BITF содержатся в файле msp430f2274.h и представляют собой 16-ти разрядные слова в заданном разряде которых содержится 1, все остальные разряды содержат 0.

Интегрированная среда разработки μVision IDE

Интегрированная среда разработки (Integrated Development Environment) — μVision IDE — фирмы Keil сочетает в себе уникальные возможности: управление проектами, создание отдельных программ, ре- дактирование текста программы, отладку программ, позволяет непосредственно вызывать симулятор или внутрисхемный эмулятор. Редактор и отладчик объединены в одно приложение, что упрощает процесс разработки проекта. μVision проста в использовании.

Код для мигалки:

#include <msp430g2211.h> void main(void) {    unsigned int count;    WDTCTL = WDTPW + WDTHOLD;    P1OUT = 0;    D1DIR = BIT0;    for (;;) {        P1OUT |= BIT0;        for (count = 0; count < 60000; count++);        P1OUT &= ~BIT0;        for (count = 0; count < 60000; count++);    } } // main

Тема 1.5. Отладка и запуск программы для мк

1.Создали в рабочей директории новый проект. Назвали его Test2.

Создали исходный файл проекта. Текст программы приводится ниже.   

 unsigned int A,B,C,D,E,F;

 

void main(void)

{

    unsigned int i;

    A=0X000F;

    B=0X00F0;

    C=0X0F00;

    i=0;

    while(i<256)

        {

                D=A&i;

                E=B&i;

                F=C^i;

                i=i+1;

        }

}

Добавили файлы в проект.  Проект скомпилировался без ошибок, загрузили программу в ЦСП. Выполнили следующую команду View Þ Registers Þ CPU Registers.  С помощью команды File Þ Open…( тип файла – Memory Map Files (*.map)) откройли файл Test2.map (он находится в рабочей директории проекта, в папке Debug). В данном файле нашли место, где указано расположение внутренних переменных в области памяти данных.

2. Создали в рабочей директории новый проект. Назвали его Test22. Создали исходный файл проекта.

#include “Test22.h”

int inp_sig[SIZE];

int out_sig[SIZE];

int buff[SIZE];

int gain=KOFF;

int offset=OFF;

void main()

{

unsigned int i;

while(1)

{

puts(” программа работает\n”);

for(i=0;i<=SIZE;i++)

{

out_sig[i]=(gain*inp_sig[i])+offset;

}

}

}

Создали вспомогательный файл (файл включений), в котором будут задаваться размеры массивов переменных, значения коэффициента усиления и величины постоянного смещения.

#define KOFF 10

#define OFF 200

#define SIZE 100

Сохранили этот файл в рабочей директории проекта под именем Test22.h. Запустили проект на компиляцию. Проект скомпилировался без ошибок, загрузите программу в ЦСП. Перейдите к программной метке «main». Вызовите окно просмотра переменных Watch Window, и добавьте в него переменные gain и offset.

Мы научимся подключать внешние входные данные к нашей программе. Запустить программу на выполнение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]