По приходу синхросигнала вызывается прерывание. В прерывании подставляю ДМА новый адрес перврго элемента массива. Сбрасываю флаг и запускаю ДМА. При том, что представляет собой код значения АЦП укладываются м массив постоянно. Пока только в один. Проблема в том, что ДМА не останавливается, а укладывает по новому кругу. Мне нужно чтобы 1000 отсчетов уложились и стоп до следующего прихода синхры. Как это реализовать?
Код
void EXTI1_IRQHandler (void) //Ïðèâÿçêà òûë
{
EXTI->PR |= (1<<1);
DMA2_Stream0->NDTR = 1000; //NDT[15:0]: Number of data items to transfer
DMA2->LIFCR |= (1UL<<5);
DMA2_Stream0->CR |= (1UL<<0);//EN: Stream enable / flag stream ready when read low
}
}
Живи днем так, чтобы ночью ты спал спокойно.