Ср июл 31, 2019 11:31:03
Именно это. Как настроите периферию и будете выводить данные в ЦАП?kloker писал(а):или вы про инициализацию и тактирование ЦАП сейчас?
Ср июл 31, 2019 13:23:23
То есть вы предлагаете отказываться от преимуществ архитектуры?kloker писал(а):как можно наваять платформонезависимый софт, если железо идеологически и архитектурно разное?
Используйте SPL. В ней давно баги устранили.kloker писал(а):у STM с HAL и LL грабля на грабле
Ср июл 31, 2019 14:50:48
То есть вы предлагаете отказываться от преимуществ архитектуры?kloker писал(а):как можно наваять платформонезависимый софт, если железо идеологически и архитектурно разное?
Ср июл 31, 2019 18:29:51
Для МК не обязательно писать на C++. Обычного Си, бейсика или ассемблера достаточно.kloker писал(а):потому что сын в колледже Си++ проходит
Не самое оптимальное решение.kloker писал(а):по прерыванию запись с массива в регистр ЦАП
Ср июл 31, 2019 21:16:19
Чт авг 01, 2019 20:43:52
u32 i = 0;
dataBuffer.u8[i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
Чт авг 01, 2019 22:32:33
Пт авг 02, 2019 05:43:40
Пт авг 02, 2019 18:16:40
И что помешало выложить в теме эти 5 строк?DimKra писал(а):В частности написать тот же вывод массива через DMA в Arduino IDE ещё быстрее и проще чем в любой другой IDE. Это буквально 5 строк.
Пт авг 02, 2019 19:07:12
#include <libmaple/dac.h>
#include <dma_private.h>
uint8_t wave[256]; //массив синусоиды
void setup() {
for(uint16_t n=0; n<256; n++){wave[n]=255*(sin(TWO_PI*float(n)/256)+1)/2 ;}// синус
dac_init(DAC,DAC_CH1);
DAC->regs->CR = DAC_CR_EN1 | DAC_CR_BOFF1 | DAC_CR_TEN1 | (1<<5) | DAC_CR_DMAEN1;
TIMER2_BASE->CR2= 1<<5; TIMER2_BASE->ARR=1;
TIMER2_BASE->CR1=1;
dma_init(DMA2);
dma_setup_transfer(DMA2,DMA_CH3,&DAC->regs->DHR8R1,DMA_SIZE_8BITS, (uint8_t*)wave, DMA_SIZE_8BITS, (DMA_FROM_MEM|DMA_MINC_MODE|DMA_CIRC_MODE) );
dma_set_num_transfers(DMA2, DMA_CH3, 255);
dma_enable(DMA2, DMA_CH3);
}
void loop() { }
Пт авг 02, 2019 20:16:26
Пт авг 02, 2019 20:25:05
Пт авг 02, 2019 20:50:44
Пт авг 02, 2019 21:04:15
Пт авг 02, 2019 22:07:46
Пт авг 02, 2019 22:48:52
DimKra писал(а):В частности написать тот же вывод массива через DMA в Arduino IDE ещё быстрее и проще чем в любой другой IDE.
Во первых, строк больше чем 5.DimKra писал(а):Вот пример, выводит 8-битный синус в ЦАП через DMA.
Пт авг 02, 2019 23:17:26
Пн авг 05, 2019 18:59:44
Пн авг 05, 2019 21:44:04
Вт авг 06, 2019 05:02:35