ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
752862 Топик полностью
Apтём (28.04.2017 22:57 - 23:11, просмотров: 409) ответил Ксения на Кто-нибудь может поделиться рабочим участком кода кодом, где Xmega с помощью DMA отсасывает данные от ADC в область памяти?
Слишком общая постановка задачи. То есть я что имею в виду - у XMEGA АЦП весьма примитивно(по сравнению с более взрослыми МК), но тем не менее вариантов его использования тоже может быть много. Например: - запуск (тоже можно вручную или по таймеру через Event System) преобразования по одному каналу - запуск в режиме сканирования - запуск ихнего "конвейерного" АЦП (от 2ух до 4ёх каналов параллельно), который кстати толком и не работает (глючит оно) - запуск через Event System одного или нескольких каналов в параллель - ДМА может работать в разных режимах - например канал ДМА сдвоенный или стандартный - наверное ещё какие-то режимы есть
В интернете нахожу множество примеров,
А почему не application note от Атмел? Были же для DMA и для АЦП. Не подходит?
"вот, ребята, написал код, но он не работает".
Так а что у Вас не работает? ДМА или АЦП? В чём сложность-то? P.S. Приложил пример - там ADCB работает в режиме сканирования, результат забирает ДМА (должно работать, но мог и проект перепутать- 3 года прошло). Ели заинтересует то смотрите файлы adc_scan_driver.cpp, dma_template.h, на остальное (я про RTOS) можно не обращать внимание - программа сама по себе бессмысленная (писалась для того чтобы загрузить МК чем угодно с целью проверить стабильность работы ОСи). dma_template.h - набор функций для настройки-работы ДМА, можно использовать с любым блоком иксмеги, работающим с ДМА (там реализованы функции которые мне показались наиболее нужными (сдвоенных каналов ДМА нет)). Правда dma_template.h только на Си++ компилируется...