На третей ножке порта1 нужно создать ШИМ с регулируемой скважностью. Cкважность меняется при изменении параметра Peremennaya. Как скважность ШИМа- CCR1 связать с портом 1? В коде это место отмечено вопросами.
Код
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
_DINT(); // Запрещаем прерывания
InitializationPortIO (); // Вызов функции инициализации портов ввода/вывода микроконтроллера
InitializationTimersMSP430 (); // Вызов функции инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
InitializationUSART (); // Вызов функции инициализации модуля USART
InitializationADC (); // Вызов Функции инициализации модуля АЦП микроконтроллера
_EINT(); // Разрещаем прерывания
while (1)
{
if (Flag_1s == true) // Если флаг 1 секунды поставлен
P1.......; // ???????????????
Flag_1s = false;
}
}
// return 0;
}
//********************************************************************************
*********************************************************************************
******************************
//************************************************************* ОПИСАНИЯ ФУНКЦИЙ ********************************************************************************
************************
void InitializationTimersMSP430 (void) // Функция инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
{
// Общая инициализвция модуля тактирования микроконтроллера
BCSCTL1 = 0x00; // Обнуление управляющего регистра BCSCTL1
BCSCTL2 = 0x00; // Обнуление управляющего регистра BCSCTL2
BCSCTL1 = RSEL0 | RSEL1 | RSEL2; // Сопротивление внутреннего резистора -> МАКСИМУМ
BCSCTL2 = SELM_2 | // Источник тактирования MCLK -> XT2CLK
DIVM_0 | // Делитель MCLK -> 1
SELS | // Источник тактирования SMCLK -> XT2CLK
DIVS_0; // Делитель SMCLK -> 1
DCOCTL = DCO0 | DCO1 | DCO2 | // Частота генератора -> МАКСИМУМ (8000000 Гц)
MOD0 | MOD1 | MOD2 | MOD3 | MOD4; // Модулятор тактовой частоты DCO -> МАКСИМУМ
LPM4; // Генераторы DCO и LFXT1 отключены
// Инициализация Flash-памяти
FCTL2 = 0xA553; // Предделитель частоты тактирования -> 20 (400000 Гц)
// Инициализация таймера А
TACTL = TASSEL_2 | // Источник тактирования таймера -> сигнал SMCLK
MC_1 | // Режим работы таймера -> счёт вверх до значения TACCR0
ID_3; // Предделитель таймера -> 8
TACCR0 = 50000; // Счёт до значения -> 40000
TACCTL0 = CCIE; // Разрешение прерывания по захвату/сравнению
CCR1 = CCR0 * Peremennaya; // Скважность ШИМа
TACCTL1 = OUTMOD_7; // Конфигурация выхода, режим сброс/установка
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void InitializationPortIO (void) // Функция инициализации портов ввода вывода микроконтроллера
{
// Инициализация порта ввода/вывода №1
P1SEL = 0x06; // 3 вывод порта настроен как функция периферийного модуля
P1OUT = 0x00; // На всех выводах порта установлены логические "0"
P1DIR = 0x06; // 3 вывод порта настроен как выход
}