Доброго всем дня!
Имеется устройство на базе микроконтроллера stm32, которое опрашивает АЦП и складывает результаты через DMA в кольцевой буфер:
__IO uint32_t buff[4096];
при заполнении половины буфера и целого буфера вызываются прерывания, в которых нужно перегнать соответствующую половину данного массива на СД карту по SPI (8бит). Каким образом можно обратиться к половине массива и перебрать его побайтно?
пока приходит на ум только
void SPI1_send(unsigned char cmd);
for (i=0;i<2048;i++) {
SPI1_send(buff[i]>>24);
SPI1_send(buff[i]>>16);
SPI1_send(buff[i]>>8);
SPI1_send(buff[i]);
}
Но тут каждый раз перед отправкой придется выполнять сдвиговые операции, да и самому не нравится такой подход.
спасибо!