Created
April 19, 2020 16:02
-
-
Save futurelink/49f269e39c80341a42e3c94a556ecfc5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Настройка таймера для генерации N импульсов | |
| * указанного периода и указанной скважностью. | |
| * Период задается регистром ARR, кол-во импульсов RCR | |
| * и скважность задается CCR1. Импульсы выводятся на | |
| * соответствующую ногу микросхемы. | |
| */ | |
| void TIM1_Config() { | |
| RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // Enable TIM1 | |
| /* Настройка таймера 1 */ | |
| TIM1->PSC = TIMER_PRESCALER; // Прескейлер таймера константа | |
| TIM1->CR1 &= ~( | |
| TIM_CR1_DIR | TIM_CR1_CMS | // Сбрасываем направление счета | |
| TIM_CR1_CKD // Отключаем деление частоты | |
| ); | |
| TIM1->CR1 |= ( | |
| TIM_COUNTERMODE_UP | // Выставляем направление счета вверз | |
| TIM_CLOCKDIVISION_DIV1 | // Выставляем деление частоты на 1 | |
| TIM_CR1_OPM // Включаем вывод в порт | |
| ); | |
| TIM1->CCMR1 &= ~(TIM_CCMR1_OC1M | TIM_CCMR1_CC1S); // Сбрасывваем режим работы канала 1 | |
| TIM1->CCMR1 |= TIM_OCMODE_PWM2; // Включить загрузку и ШИМ | |
| TIM1->CCER &= (uint16_t) ~TIM_CCER_CC1P; | |
| TIM1->CCER |= ( | |
| TIM_OCPOLARITY_HIGH | // Полярность - высокий уровень | |
| TIM_CCER_CC1E // Разрешаем выход канала 1 | |
| ); | |
| TIM1->BDTR |= TIM_BDTR_MOE; // Разрещаем выходы таймера | |
| TIM1->ARR = 0; // ВЫставляем начальные значения | |
| TIM1->RCR = 0; // счетных регистров в нули. | |
| TIM1->CCR1 = 0; | |
| TIM1->EGR |= TIM_EGR_UG; // Включаем генерацию события Update Event (после RCR!) | |
| TIM1->DIER |= TIM_DIER_UIE; // Генерим прерывание по Update Event | |
| TIM1->CR1 &= ~TIM_CR1_CEN; // Запрещаем работу таймера, он должен включаться потом | |
| NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 0); | |
| NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment