-
- Следующее задание адресовано уже другому датчику - CS (chip select)
надо успеть между заданиями поменять. Тогда как при циклическом
режиме работы DMA он успевает передать байт раньше, чем я сменю CS,
и тогда первый байт достается прошлому датчику. - Kceния(27.08.2020 20:47)
- хм! есть у меня подобная задача, вопросов не возникало Aleksey_75(366 знак., 27.08.2020 21:09)
- Ещё проще, для этого есть конечные автоматы. Проще потому, что их
можно написать абстрактно, без явной зависимости от железа. С
другой стороны, вам нужно только 3-4 регистра перезаписать, это и в
прерывании можно сделать (NDTR, M0AR, CR и GPIO->BSRR) - evgeniy1294(27.08.2020 20:56)
- Оно в принципе у меня и сейчас нормально работает, но сделано через
ухо: в прерывании я запускаю таймер (он уже приготовлен на 1 тик и
только ждет запуска), а уже этот таймер в своем прерывании
перезапускает SPI на другой CS. Тогда как в своем SPI-ишном
прерывании перезапустится не могу. Что происходит, не знаю, но LED
перестает моргать, а потом Watch dog срабатывает. Kceния(1 знак., 27.08.2020 21:12, картинка)
- Это нужно код смотреть - evgeniy1294(27.08.2020 21:25)
- Оно в принципе у меня и сейчас нормально работает, но сделано через
ухо: в прерывании я запускаю таймер (он уже приготовлен на 1 тик и
только ждет запуска), а уже этот таймер в своем прерывании
перезапускает SPI на другой CS. Тогда как в своем SPI-ишном
прерывании перезапустится не могу. Что происходит, не знаю, но LED
перестает моргать, а потом Watch dog срабатывает. Kceния(1 знак., 27.08.2020 21:12, картинка)
- Следующее задание адресовано уже другому датчику - CS (chip select)
надо успеть между заданиями поменять. Тогда как при циклическом
режиме работы DMA он успевает передать байт раньше, чем я сменю CS,
и тогда первый байт достается прошлому датчику. - Kceния(27.08.2020 20:47)