Код
//************************************************** ПОДКЛЮЧАЕМЫЕ К ПРОЕКТУ БИБЛИОТЕКИ ********************************************************************************
******************
#include "msp430x13x.h" // Стандартная библиотека описания микроконтроллеров серии MSP430x13x
#include "stdbool.h" // Стандартная библиотека для работы с переменными типа BOOL
#include "stdio.h" // Стандартная библиотека ввовда/вывода
#include "stdint.h"
#include "usart_msp430.h" // Подключение библиотеки для работы с модулем USART микроконтроллера MSP430F135 data_convert_adc.h
//********************************************************************************
*********************************************************************************
******************************
//************************************************* ГЛОБАЛЬНЫЕ ПНРЕМЕННЫЕ ********************************************************************************
***************
volatile uint16_t t_interrupt; // 16-разрядный целочисленный тип без знака
uint16_t time1, time2,t1, t2; // 16-разрядный целочисленный тип без знака
//********************************************************************************
*********************************************************************************
******************************
//************************************************* ФУНКЦИИ ПРЕДСТАВЛЕННЫЕ ДАННЫМ МОДУЛЕМ ********************************************************************************
***************
uint16_t clock_10ms(void)
{
do
{ t1=t_interrupt;
t2=t_interrupt;
}
while(t1 != t2);
return t2;
}
void InitializationTimersMSP430 (void); // Функция инициализации внутренних аппаратных таймеров микроконтроллера
void InitializationPortIO (void); // Функция инициализации портов ввода вывода микроконтроллера
void InitializationUSART (void); // Функция инициализации модуля USART микроконтроллера
//********************************************************************************
*********************************************************************************
******************************
//************************************************************** ТЕЛО МОДУЛЯ ********************************************************************************
****************************
//********************************************************************************
*********************************************************************************
******************************
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Остановка сторожевого таймера, чтобы предотвратить время сброса
_DINT(); // Запрещаем прерывания
InitializationPortIO (); // Вызов функции инициализации портов ввода/вывода микроконтроллера
InitializationTimersMSP430 (); // Вызов функции инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
InitializationUSART (); // Вызов функции инициализации модуля USART
_EINT(); // Разрещаем прерывания
time1 = clock_10ms();
// time2 = clock_10ms();
for (;;)
{
if ((clock_10ms() - time1) >= 100) //проверка периода (1сек)
{
// А вот в этом месте мне надо передать по UART 1 символ, UART инициализирован, а вот как написать само действие передачи, ни разу в жизни не видела, и всякие примеры кода и пдф по msp мне не советуйте, ибо всеравно ничего из них не пойму
// Передача по UART
time1 = clock_10ms();
}
//if ((clock_10ms() - time2) >= 50) //проверка периода
// { P4OUT ^= BIT4;
// time2 = clock_10ms();
// }
}
/*
while (1)
{
if (Flag_100ms == true) // Если поставлен флаг 100мс
{
P4OUT = ~(P4OUT & BIT3); // Состояние 4 вывода 4 порта меняется
Flag_100ms = false; // Флаг убирается
}
} */
}
//********************************************************************************
*********************************************************************************
******************************
//********************************************************** ОБРАБОТЧИКИ ПРЕРЫВАНИЙ ********************************************************************************
*********************
#pragma vector=TIMERA0_VECTOR // Прерывание от таймера А (срабатывает каждые 10 мс)
__interrupt void isr_TACCR0()
{
t_interrupt += 1UL; //инкремент переменной времени прерывания
}