3.1.1.Требование к организации программного обеспечения
Программное обеспечение реализуется на языке программирования C. В качестве системы для написания и отладки программного обеспечения предлагается использовать кросс-систему TI Code Composer Studio.
Программное обеспечение должно содержать следующие элементы:
Инициализационная часть программного обеспечения (часть функции main). Выполняет инициализацию аппаратной части микроконтроллера и, при необходимости — ввод начальных значений переменных программного обеспечения.
. Функция обслуживания прерывания, обеспечивающая отсчет временных промежутков. В качестве источника прерывания может использоваться любой таймер микроконтроллера TMS430G2553, например — сторожевой таймер в режиме интервального таймера.
Бесконечный фоновый цикл (часть функции main). Выполняет вызов функций обслуживания светодиодов и кнопки.
Функции обслуживания светодиодов и кнопки, вызываемые из фонового цикла. Все эти функции должны быть реализованы в отдельных файлах исходного текста *.c и подключены к проекту.
3.1.2. Описание устройства msp-exp430g2
Устройство MSP-EXP430G2 представляет собой простейшее устройство, содержащее микроконтроллер MSP430G2553, набор внешних разъемов и устройств, позволяющих подключаться к периферийным устройствам данного микроконтроллера, а также USB-интерфейс, позволяющий выполнять программирование и отладку программного обеспечения микроконтроллера.
Подключение устройств, используемых в процессе выполнения работы, показано в таблице 2. Все устройства подключены к линиям порта P1 микроконтроллера MSP430G2553. Активный уровень соответствует включенному состоянию светодиодов и нажатому состоянию кнопки. Высокий уровень соответствует состоянию линии «1», низкий — состоянию линии «0».
3.2.Описание функционирования программы
3.2.1.Описание функционирования программы
Файл Main.c
// Malinin L.E. II-32x
// Kursovoy proekt
// Variant 28
#include "ProjectHeader.h"
void main(void)
{
WDTCTL = WDTPW + WDTTMSEL + WDTCNTCL + 0x1;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
IE1|=WDTIE;
_BIS_SR(GIE);
P1DIR = BIT0 | BIT6;
P1REN = BIT3;
P1OUT = BIT3;
while (1){}
}
//__interrupt void watchdog_timer(void);
Файл ProjectHeader.h
/*
* ProjectHeader.h
* Created on: 08.11.2012
* Author: admin
*/
#ifndef PROJECTHEADER_H_
#define PROJECTHEADER_H_
#include <msp430g2553.h> //файл заголовка конф. исп. контроллера
#define P_on 183
#define P_off 244
#define button_time_on 121
#endif /* PROJECTHEADER_H_ */
Файл TimeServis.c
#include "ProjectHeader.h"
unsigned long counter=0;
unsigned long button_counter=0;
unsigned short button_on=0;
unsigned short rejim=0;
unsigned short ray=0;
float time=0, t2=45, T2=0, T_on=0, T1=0, T2_new=0;
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void){
if((P1IN & BIT3)==0) {button_counter++;}
else {button_counter=0;}
if(button_counter>=button_time_on){button_counter=0; button_on=1;}
if((button_on==1) & ((P1IN & BIT3)!=0))
{rejim=~rejim; button_on=0;}
if(rejim==0)
{
P1OUT&=~BIT6; time=0;
counter++;
if((counter>0) & (counter<=P_on)){P1OUT|=BIT0;}
else if((counter>P_on) & (counter<=P_off)){P1OUT&=~BIT0;}
else {counter=0;}
}
else {P1OUT|=BIT6; counter=0;
if(time>=0 & time<t2)
{
if(time==0){T1=0; T2=2-0.3*time; T_on=0.3; ray=0;}
if((time>=T1) & (time<=T_on)) {P1OUT|=BIT0;}
else if((time>T_on) & (time<=T2)) {P1OUT&=~BIT0;}
else{T1=time; T2_new=2-0.3*time; T2=T2_new+T1; T_on=T1+0.3;}
time+=0.008192;
}
else if(time>=t2 & time<=2*t2)
{
if(ray==0){T1=t2; T2=0,5+0.33*time; T_on=T1+0.333; ray=1;}
if((time>=T1) & (time<=T_on)) {P1OUT|=BIT0;}
else if((time>T_on) & (time<=T2)) {P1OUT&=~BIT0;}
else{T1=time; T2_new=0,5+0.33*time; T2=T2_new+T1; T_on=T1+0.333;}
time+=0.008192;
}
else{time=0;}
}
}
Лист регистрации изменений |
|||||||||
Номера листов (страниц) |
Всего листов (страниц) в докум |
№ документа |
Входящий № сопрово дительного документа и дата |
Подп. |
Дата |
||||
Изм |
изменен ных |
заме ненных |
новых |
анулиро ванных |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1) ГОСТ 19.101-77 ЕСПД. Виды программ и программных документов
2) ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов
3) ГОСТ 19.104-78* ЕСПД. Основные надписи
4) ГОСТ 19.105-78* ЕСПД. Общие требования к программным документам
5) ГОСТ 19.106-78* ЕСПД. Общие требования к программным документам, выполненным печатным способом
6) ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению
7) ГОСТ 19.604-78* ЕСПД. Правила внесения изменений в программные документы, выполненные печатным способом
