jjjjjjein 0 15 марта, 2012 Опубликовано 15 марта, 2012 · Жалоба На третей ножке порта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 вывод порта настроен как выход } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 19 марта, 2012 Опубликовано 19 марта, 2012 · Жалоба Какой хоть контроллер. У каждого свои функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 19 марта, 2012 Опубликовано 19 марта, 2012 · Жалоба На третей ножке порта1 нужно создать ШИМ с регулируемой скважностью. Cкважность меняется при изменении параметра Peremennaya. Как скважность ШИМа- CCR1 связать с портом 1? В коде это место отмечено вопросами. Третью ножку с CCR1 - никак, только с CCR2. А связать очень просто. TACCTL2 = OUTMODE_X, где X - выбранный режим выхода. Для ШИМ это обычно или установка-сброс, либо сброс-установка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться