Например TDA7294

Форум РадиоКот • Просмотр темы - [РЕШЕНО]STM32L476RG настройка Output Compare + DMA
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 20:22:31

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: [РЕШЕНО]STM32L476RG настройка Output Compare + DMA
СообщениеДобавлено: Пт сен 04, 2020 16:19:51 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Чт дек 29, 2011 16:25:56
Сообщений: 83
Рейтинг сообщения: 0
Добрый день, форумчане!
Настроил генерирование импульсов в режиме сравнения, но прикрутить DMA не получается. Прерывание не вызывается...Пните в нужном направлении плиз...
Код:
RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN;

    GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODE6)) | GPIO_MODER_MODE6_1;
    GPIOA->OTYPER &= ~GPIO_OTYPER_OT6;
    GPIOA->OSPEEDR |= GPIO_OSPEEDR_OSPEED6;
    GPIOA->PUPDR &= ~GPIO_PUPDR_PUPD6;
    GPIOA->AFR[0] = (GPIOA->AFR[0] & ~(GPIO_AFRL_AFSEL6)) | (GPIO_AFRL_AFSEL6_3 | GPIO_AFRL_AFSEL6_2 | GPIO_AFRL_AFSEL6_1);

    RCC->APB2ENR |= RCC_APB2ENR_TIM16EN;
    RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;

    uint16_t data[] = { 2400, 600, 600, 600, 1200, 600 };

    DMA1_Channel3->CPAR = (uint32_t)&TIM16->CCR1;
    DMA1_Channel3->CMAR = (uint32_t)&data[0];
    DMA1_Channel3->CNDTR = 6;
    DMA1_Channel3->CCR &= ~(DMA_CCR_MSIZE | DMA_CCR_PSIZE | DMA_CCR_PINC | DMA_CCR_CIRC);
    DMA1_Channel3->CCR |= DMA_CCR_PL | DMA_CCR_MSIZE_0 | DMA_CCR_PSIZE_0 | DMA_CCR_MINC | DMA_CCR_DIR | DMA_CCR_TCIE;
    DMA1_Channel3->CCR |= DMA_CCR_EN;

    TIM16->PSC = 35;
    TIM16->ARR = 60000;
    TIM16->CCR1 = 100;
    TIM16->CCMR1 = (TIM16->CCMR1 & ~(TIM_CCMR1_OC1M | TIM_CCMR1_OC1PE | TIM_CCMR1_CC1S)) | (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0);
    TIM16->CCER = (TIM16->CCER & ~TIM_CCER_CC1P) | TIM_CCER_CC1E;
    TIM16->BDTR |= TIM_BDTR_MOE;
    TIM16->DIER |= TIM_DIER_CC1DE;

    TIM16->CR1 |= TIM_CR1_CEN;

    NVIC_SetPriority(DMA1_Channel3_IRQn, 0);
    NVIC_EnableIRQ(DMA1_Channel3_IRQn);


Спасибо.


Последний раз редактировалось gruffi Пт сен 04, 2020 19:51:12, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L476L настройка Output Compare + DMA
СообщениеДобавлено: Пт сен 04, 2020 16:30:20 
Электрический кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 135
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 1020
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
__enable_irq();

_________________
IVL ex UA6PJ OSC_F303


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L476L настройка Output Compare + DMA
СообщениеДобавлено: Пт сен 04, 2020 19:52:02 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Чт дек 29, 2011 16:25:56
Сообщений: 83
Рейтинг сообщения: 0
Да это выделение не дотянул до вызова...После NVIC_... идет. Не понятно куда копать...

Добавлено after 3 hours 16 minutes 45 seconds:
Re: [РЕШЕНО]STM32L476RG настройка Output Compare + DMA
Не дочитал, надо еще:
Код:
DMA1_CSELR->CSELR = (DMA1_CSELR->CSELR & ~DMA_CSELR_C3S) | (0x04 << DMA_CSELR_C3S_Pos);

Теперь работает...


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y