- •1 Ответы на контрольные вопросы заданий и их краткое содержание
- •Тема 1.1. Что такое микроконтроллер.
- •Тема 1.2.Схемотехника современных микроконтроллеров
- •Тема 1.3.Обзор языков программирования для микроконтроллеров
- •Тема 1.4.Среды программирования
- •Тема 1.5. Отладка и запуск программы для мк
- •Тема 2.1.Виды команд в процессоре. Ортогональная архитектура.
- •Тема 2.2.Адресное пространство мк msp430
- •Тема 2.3. Внутренняя структура mk msp430
- •Тема 3.1.Битовые операции
- •Тема 3.2. Аналогово-цифровой преобразователь
- •2 Описание выполнения учебного проекта
- •Программная часть
- •3 Результат выполнения учебного проекта
3 Результат выполнения учебного проекта
В результате выполнения проекта получим следующий исходный код
#include "msp430g2553.h"
#define red_LED BIT0
#define grn_LED BIT6
#define BTN BIT3
long temp;
long IntDegF;
long IntDegC;
long count;
unsigned int customtemp;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Остановка WDT
ADC10CTL1 = INCH_10 + ADC10DIV_3; // Инициализация АЦП на работу с датчиком температуры
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;
__enable_interrupt(); // Разрешаем прерывания.
TACCR0 = 30; // Устанавливаем время выборки
TACCTL0 |= CCIE; // Режим сравнения прерывания.
TACTL = TASSEL_2 | MC_1; // Выбор источника тактового сигнала TACLK = SMCLK, таймер считает от 0000h до TACCR0.
LPM0; // спать, проснется с прерывая от АЦП, где получит установку продолжить работу
TACCTL0 &= ~CCIE; // Отключить прерывание таймера
__disable_interrupt();
customtemp=25;//Установка пороговой температуры
P1OUT = 0;//Выключение светодиодов
P1DIR |= red_LED + grn_LED; // Выводы светодиодов на выход
while ((P1IN & BTN) == BTN); // ждем нажатия кнопки запускаем программу
while(1)
{
ADC10CTL0 |= ENC + ADC10SC; // Разрешение и запуска процесса выборки и преобразования
__bis_SR_register(CPUOFF + GIE); // Вход в режим LPM0
// Результат каждого преобразования заносится в регистр ADC10MEM
// oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468
temp = ADC10MEM;
IntDegF = ((temp - 630) * 761) / 1024;
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
temp = ADC10MEM;
IntDegC = ((temp - 673) * 423) / 1024;
//for (count = 0; count < 90000; count++);
if(IntDegC<=customtemp)
{
P1OUT &= ~red_LED; // выключаем красный светодиод
P1OUT |= grn_LED; // включаем зеленый светодиод
}
else
{
P1OUT &= ~grn_LED; // выключаем зеленый светодиод
P1OUT |= red_LED; // включаем красный светодиод
}
__no_operation(); // Установка точки остановки
}
}
// ADC10 прерывание
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
__bic_SR_register_on_exit(CPUOFF); // Обнуляем CPUOFF бит до 0(SR) ЦПУ активно, все разрешённые тактовые сигналы активны
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void ta0_isr(void)
{
TACTL = 0;
LPM0_EXIT; // Выход из режима LPM0 по возвращению
}
ЗАКЛЮЧЕНИЕ
При прохождении практики были проверены следующие практические знания и навыки:
1 Правильность и точность разработки кода программного модуля на современных языках программирования.
2 Точность создания программы по разработанному алгоритму как отдельного модуля.
3 Правильность разработки кода программного продукта на основе готовой спецификации на уровне модуля.
4 Правильность применения основных принципов отладки и тестирования программных продуктов.
5 Точность использования инструментальных средств на этапе отладки программного продукта.
6 Правильность отладки и тестирование программы на уровне модуля и проведения тестирования программного модуля по определенному сценарию.
7 Правильность выполнения отладки и тестирование программы на уровне модуля.
7 Точность проведения оптимизации программного кода модуля по определенному сценарию.
8 Правильность выполнения отладки и тестирование программы на уровне модуля и правильность использования инструментальных средств на этапе отладки программного продукта.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1 Канер, С. Тестирование программного обеспечения[Текст]: Пер. с англ./С. Канер, Д. Фолк, Кек Нгуен [и др.]-Киев: ДиаСофт, 2000. – 544 с.
2 Рудаков, А.В. Технология разработки программных продуктов[Текст]: Учеб. Пособие для студ. Сред. Проф. Образования./А.В. Рудаков.-М.: Издательский центр «Академия», 2007. – 192 с.
3 Фридман, А.Л. Основы объектно-ориентированной разработки программных систем[Текст] / Л.И. Фридман -М.:Финансы и статистика, 2000. – 192 с.
4 Интегрированные среды разработки / Электронный ресурс http://www.studfiles.ru/dir/cat32/subj1259/file11616/view106028.html
5 Культин, Н.Б. C/C++ в задачах и примерах[Текст]: 2-е изд., перераб. и доп. (+CD) / Н.Б. Культин - И: «ЛАНЬ»,2012 г.
6 Кузнецов, М.В. C++. Мастер-класс в задачах и примерах [Текст]: (+ CD) / М.В. Кузнецов. - И: «ЛАНЬ», 2012 г.
