Код
...
/* Включить DAC1 */
DAC->CR |= DAC_CR_EN1;
/* Включить DAC1 */
DAC->CR |= DAC_CR_EN1;
до этого был настроен на прерывание таймер 6.
Вот его обработчик:
Код
/*Обработчик прерывания от таймера 6 */
void TIM6_DAC_IRQHandler(void) {
TIM6->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
DAC->DHR12R1=sin[i++]; //Запихиваем в ЦАП очередной элемент массива
if (i==32) i=0; //Если вывели в ЦАП все 32 значения то начинаем заново
}
void TIM6_DAC_IRQHandler(void) {
TIM6->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
DAC->DHR12R1=sin[i++]; //Запихиваем в ЦАП очередной элемент массива
if (i==32) i=0; //Если вывели в ЦАП все 32 значения то начинаем заново
}
На сколько мне понятно, при просто запуске ЦАПа, записав DAC->CR |= DAC_CR_EN1;
я стартую ЦАП, когда заношу во временные регистры какое-либо значение
DAC->DHR12R1=sin[i++];
В данном случае я делаю это в прерывании таймера 6.
Почему я не могу это делать в другом таймере? Почему именно в таймере для ЦАП?