
5 Результат выполнения учебного проекта
В результате выполнения проекта получим следующий исходный код
#include <msp430g2452.h>
void ADC_init(void); // function prototypes
void Ports_init(void);
void TimerA_init(void);
int volts =0;
int i= 0 ;
int summa = 0;
int A[8];
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // disable watchdog
Ports_init(); // init P1 and P2
ADC_init(); // init ADC
TimerA_init(); // init TimerA
for (;;)
__low_power_mode_0(); // enter sleep mode
}//main
void TimerA_init(void)
{
TACCR0 = 6000; // ADC trigger period ~22 мсек
TACCTL0 = OUTMOD_4; // toggle OUT0 to trigger ADC
TACTL = TASSEL_2 + ID_3 + MC_1 + TACLR; // SMCLK/8, up mode, start
}
void Ports_init(void)
{
P1DIR = 0xFF; // configure port for output
P1OUT = 0; // init port
P2DIR = 0xFF; // configure port for output
P2SEL = 0; // I/O on XTAL pins
P2OUT = 0; // init port
}
void ADC_init(void)
{
ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON + ADC10IE; // 16 clocks sample-and-hold
ADC10CTL1 = SHS_2 + CONSEQ_2; // trigger by TA0
ADC10AE0 = BIT0; // set ADC channel 0
ADC10CTL0 |= ENC; // enable conversion
}
#pragma vector = ADC10_VECTOR
__interrupt void ADC10_ISR (void) // ADC10 ISR
{
summa = summa - A[i] + ADC10MEM;
A[i] = ADC10MEM;
i++;
if (i == 7) i=0;
int adcAverage = summa >> 3;
volts = adcAverage;
char led1 = 0; // PORT1 leds stati
char led2 = 0; // PORT2 leds stati
if (volts < 60) led1 |= BIT1;
if (volts >= 60 && volts < 135) led1 |= BIT2; // new led states
if (volts >= 135 && volts < 209) led1 |= BIT3;
if (volts >= 209 && volts < 280) led1 |= BIT4;
if (volts >= 280 && volts < 348) led1 |= BIT5;
if (volts >= 348 && volts < 420) led2 |= BIT0;
if (volts >= 420 && volts < 492) led2 |= BIT1;
if (volts >= 492 && volts < 564) led2 |= BIT2;
if (volts >= 564 && volts < 636) led2 |= BIT3;
if (volts >= 636 && volts < 708) led2 |= BIT4;
if (volts >= 708 && volts < 780) led2 |= BIT5;
if (volts >= 780 && volts < 852) led1 |= BIT6;
if (volts >= 852 && volts < 924) led1 |= BIT7;
if (volts >= 924 && volts < 996) led2 |= BIT6;
if (volts >= 996) led2 |= BIT7;
P1OUT = led1; // copy led states to ports
P2OUT = led2;
}
Заключение
В результате выполнения портфолио были освоены профессиональные компетенции и проверено их освоение, заключающееся в точность определения основных этапов разработки программного обеспечения, правильности применения основных принципов технологии структурного и объектно-ориентированного программирования, правильности оформления документации на программные средства, правильности и точности разработки алгоритма поставленной задачи, правильности применение основных принципов технологии структурного и объектно-ориентированного программирования;
Так же были проверены:
1 Правильность и точность разработки кода программного модуля на современных языках программирования.
2 Точность создания программы по разработанному алгоритму как отдельного модуля.
3 Правильность разработки кода программного продукта на основе готовой спецификации на уровне модуля.
4 Правильность применения основных принципов отладки и тестирования программных продуктов.
5 Точность использования инструментальных средств на этапе отладки программного продукта.
6 Правильность отладки и тестирование программы на уровне модуля и проведения тестирования программного модуля по определенному сценарию.
7 Правильность выполнения отладки и тестирование программы на уровне модуля.
7 Точность проведения оптимизации программного кода модуля по определенному сценарию.
8 Правильность выполнения отладки и тестирование программы на уровне модуля и правильность использования инструментальных средств на этапе отладки программного продукта.