Код
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
_DINT(); // Запрещаем прерывания
InitializationPortIO (); // Вызов функции инициализации портов ввода/вывода микроконтроллера
InitializationTimersMSP430 (); // Вызов функции инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
InitializationUSART (); // Вызов функции инициализации модуля USART
InitializationADC (); // Вызов Функции инициализации модуля АЦП микроконтроллера
_EINT(); // Разрещаем прерывания
while (1)
{
ADC12CTL0 |= ADC12SC; // Выборка и запуск
unsigned int i = 0; // Программный фильтр
for(i=1; i<=100;) // Программный фильтр
{ IntDegC = (IntDegC + Code_ADC_CPU*i); // Программный фильтр
i++; // Программный фильтр
}
IntDegC = (((IntDegC / 100)- 1855) * 667) / 4096; // Формула для температуры в градусах цельсия
//IntDegC = ((IntDegC - 1855) * 667) / 4096;
//-----------------------------------------------------------------------------------------------------------
if (Flag_1s == true) // Приём по UART
{
UART_printf ("\r\ntime %u:%u:%u",TimeHour, TimeMinute, TimeSecond); // Передача времени
UART_printf ("\r\nT=%u",IntDegC); // Передача температуры
//-------------------------------------------------------------------------------------------------------
if (ADC_MEASSURING == false)
{
ADC_MEASSURING = true;
Code_ADC_CPU = 0;
ADC12CTL0 |= 0x03;
}
if (FlagAcceptDataUART == true)
{ // Передача по UART данных
if (Counter_UART_RXDATA == 4)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0] - 48)*100 + (BUFER_UART_RXD [1] - 48)*10 + (BUFER_UART_RXD [2] - 48);}
else
if(Counter_UART_RXDATA == 3)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0] - 48)*10 + (BUFER_UART_RXD [1] - 48);}
else
if(Counter_UART_RXDATA == 2)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0]) - 48;}
UART_printf ("\r\nЗАДАНА МОЩНОСТЬ: %u\r\n" , ASCI_TO_DESYATICHNAYA);
char Counter_UART_RXDATA1;
for (Counter_UART_RXDATA1 = 0; Counter_UART_RXDATA1 <= 4;)
{
BUFER_UART_RXD[Counter_UART_RXDATA1] = 0;
Counter_UART_RXDATA1 ++;
}
Counter_UART_RXDATA = 0;
FlagAcceptDataUART = false;
FlagOverloadBuferUART = false;
}
Flag_1s = false;
}
}
// return 0;
}
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
_DINT(); // Запрещаем прерывания
InitializationPortIO (); // Вызов функции инициализации портов ввода/вывода микроконтроллера
InitializationTimersMSP430 (); // Вызов функции инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
InitializationUSART (); // Вызов функции инициализации модуля USART
InitializationADC (); // Вызов Функции инициализации модуля АЦП микроконтроллера
_EINT(); // Разрещаем прерывания
while (1)
{
ADC12CTL0 |= ADC12SC; // Выборка и запуск
unsigned int i = 0; // Программный фильтр
for(i=1; i<=100;) // Программный фильтр
{ IntDegC = (IntDegC + Code_ADC_CPU*i); // Программный фильтр
i++; // Программный фильтр
}
IntDegC = (((IntDegC / 100)- 1855) * 667) / 4096; // Формула для температуры в градусах цельсия
//IntDegC = ((IntDegC - 1855) * 667) / 4096;
//-----------------------------------------------------------------------------------------------------------
if (Flag_1s == true) // Приём по UART
{
UART_printf ("\r\ntime %u:%u:%u",TimeHour, TimeMinute, TimeSecond); // Передача времени
UART_printf ("\r\nT=%u",IntDegC); // Передача температуры
//-------------------------------------------------------------------------------------------------------
if (ADC_MEASSURING == false)
{
ADC_MEASSURING = true;
Code_ADC_CPU = 0;
ADC12CTL0 |= 0x03;
}
if (FlagAcceptDataUART == true)
{ // Передача по UART данных
if (Counter_UART_RXDATA == 4)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0] - 48)*100 + (BUFER_UART_RXD [1] - 48)*10 + (BUFER_UART_RXD [2] - 48);}
else
if(Counter_UART_RXDATA == 3)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0] - 48)*10 + (BUFER_UART_RXD [1] - 48);}
else
if(Counter_UART_RXDATA == 2)
{ASCI_TO_DESYATICHNAYA = (BUFER_UART_RXD [0]) - 48;}
UART_printf ("\r\nЗАДАНА МОЩНОСТЬ: %u\r\n" , ASCI_TO_DESYATICHNAYA);
char Counter_UART_RXDATA1;
for (Counter_UART_RXDATA1 = 0; Counter_UART_RXDATA1 <= 4;)
{
BUFER_UART_RXD[Counter_UART_RXDATA1] = 0;
Counter_UART_RXDATA1 ++;
}
Counter_UART_RXDATA = 0;
FlagAcceptDataUART = false;
FlagOverloadBuferUART = false;
}
Flag_1s = false;
}
}
// return 0;
}