-
- В общем, вот такой код: Eddy_Em(1889 знак., 21.09.2023 15:45)
- Не стоит оно того - так отчаиваться и кричать. Закури бамбук и поразмерь привычный уже в летах и новополученный курьером (DHL) инструментарий... Навыки владения компасом безусловно пригодятся для освоения астролябии. - bandb62i(22.09.2023 19:06, )
- а у меня много лет такой код - HAL_ADC_Start_DMA(&hadc1, BUFADC1, 1); :-) - Лaгyнoв(22.09.2023 18:45)
- такой код работает давно, проблем не замечено: SciFi(1500 знак., 21.09.2023 16:24)
- Мужики, General, каким это шрифтом выше код на caxapa печатается?
Это Courier 10? Просто когда поставил сейчас 133% зум страницы,
вижу _крайне_ оптимальный для себя размер и стиль на ноутбуке, хочу
перенести в редакторы, сильно нраица. - RxTx(22.09.2023 09:13 - 12:53)
- Занятно, но как выглядит показать не могу. Caxapa масштабирует
любое изображение, нарушая оригинальный вид. Но как-то так (на
картинке слишком крупно, а сделав скриншот зум я открутил обратно
на 100%) RxTx(1 знак., 22.09.2023 12:57 - 13:03, картинка)
- Вот что установлено в стиле однако ответ неочевиден General(79 знак., 22.09.2023 16:09, ссылка, ссылка)
- Однозначно это моноширинный шрифт. У меня показывает вроде как
LiberationNoto Sans Mono. - reZident(22.09.2023 13:06)
- Инспектор говорит "monospace". В настройках моего огнелиса сказано, что monospace -> Consolas. - SciFi(22.09.2023 12:57)
- Может, понравится шрифт "Source code pro"? - Eddy_Em(22.09.2023 10:00)
- На линухе его и юзаю =) - RxTx(22.09.2023 13:00)
- Занятно, но как выглядит показать не могу. Caxapa масштабирует
любое изображение, нарушая оригинальный вид. Но как-то так (на
картинке слишком крупно, а сделав скриншот зум я открутил обратно
на 100%) RxTx(1 знак., 22.09.2023 12:57 - 13:03, картинка)
- а это "1e-5" как? - Nikolay801_(21.09.2023 16:58)
- Константа же на стадии препроцессора вычисляется. - Eddy_Em(21.09.2023 18:22)
- Нет, это после препрцессора. Но плавучку в код не тянет. - SciFi(21.09.2023 18:29)
- ну не мучай парней, дай код delay... - RxTx(22.09.2023 04:18)
- Нет, это после препрцессора. Но плавучку в код не тянет. - SciFi(21.09.2023 18:29)
- Константа же на стадии препроцессора вычисляется. - Eddy_Em(21.09.2023 18:22)
- Так у меня на F103C8T6 и CBT6 даже другая последовательность инициализации нормально работала. Eddy_Em(39 знак., 21.09.2023 16:29)
- Мужики, General, каким это шрифтом выше код на caxapa печатается?
Это Courier 10? Просто когда поставил сейчас 133% зум страницы,
вижу _крайне_ оптимальный для себя размер и стиль на ноутбуке, хочу
перенести в редакторы, сильно нраица. - RxTx(22.09.2023 09:13 - 12:53)
- Вот и хорошо! Но я почти никогда не включаю модуль вместе с
настройкой. Сначала всё настраиваю, и лишь затем
DMA1_Channel1->CCR |= DMA_CCR_EN; У меня DMA включается уже
после команды на запуск АЦП, когда сам АЦП уже дёрнул всё что надо
на стыке с шиной. - Nikolay_Po(21.09.2023 15:52)
- Вот здесь получилось, что DMA лучше включить сильно заранее. Eddy_Em(130 знак., 21.09.2023 16:19)
- Могу предположить, что механизм, который выбирает какой канал будет
взят следующим из выбранной вами последовательности, имеет память
"на чем он остановился", поэтому может начать не с начала
последовательности. Возможно надо добавить сброс модуля АЦП перед
инициализацией, и задание последовательности поставить после
калибровки. - AlexBi(20.09.2023 20:52)
- На STM32F103C8 (и B) этот же код нормально работал. Eddy_Em(144 знак., 20.09.2023 21:09)
- Вряд ли изобретатели чипа за 45р изобретали свой собственный блок АЦП. Скорее всего взяли готовый, такой же как в оригинале, и положили его на свой техпроцесс. Процесс отличается, из-за этого при включении питания состояние немного другое. Но если сделать сброс, или еще как-то поставить механизм выбора в определенное состояние, тогда все будет работать. Вот такая гипотеза. - AlexBi(20.09.2023 22:23)
- На STM32F103C8 (и B) этот же код нормально работал. Eddy_Em(144 знак., 20.09.2023 21:09)
- А зачем АЦП два раза вклчюать? - Nikolay_Po(20.09.2023 18:06)
- Первый раз "будит", второй - запускает начало преобразований. - Eddy_Em(20.09.2023 18:35)
- Мне хватало одного. Первый будит, а потом сброс SR запускает. Но могу путать, делал года 4 назад или больше. - Nikolay_Po(20.09.2023 21:16)
- Первый раз "будит", второй - запускает начало преобразований. - Eddy_Em(20.09.2023 18:35)
- Я DMA включаю только после АЦП. Гляньте, может, что заметите тут: Nikolay_Po(9245 знак., 20.09.2023 18:04)
- Были как-то глюки в работе ADC и DMA, причем не на всех
экземплярах, а где-то 50/50. Вылечилось добавлением барьера DSB
сразу после включения тактирования DMA, там где в исходнике
"//Dummy read for a pause". - ЫЫyкпy(21.09.2023 05:23)
- Спасибо. - Nikolay_Po(21.12.2023 17:44)
- Не, не помогает. Уже что только ни делал - все равно почему-то первые несколько считываний АЦП проходят "мимо" DMA, а потом все стабильно. В итоге порядок плавает. Eddy_Em(1682 знак., 21.09.2023 08:53)
- Спасибо. Ну, я научен dsPIC-ами. Там, где периферия медленнее, чем
шина, нужно ожидать сработки модуля, прежде чем продолжать
настройку. Доходило до смешного - заводил трабл тикет на модуль
UART - после записи байта на передачу, тут же выполняемая проверка
бита занятия буфера передачи давала результат "буфер свободен".
Периферия буквально на такт не успевала за шиной. Микрочип проверил
и отписался, что все нормально, просто шина слишком быстрая.
Вставляйте один NOP. Nikolay_Po(182 знак., 21.09.2023 08:01)
- По крайней мере на кортексах-М3, -М4 что пустое чтение, что
вставленный NOP или другая команда дают достаточную задержку чтобы
запись в регистр периферии успела завершиться. - ЫЫyкпy(21.09.2023 08:31)
- Учу тайным знаниям про __DSB() - lloyd(21.09.2023 08:35)
- Спасибо :) - ЫЫyкпy(21.09.2023 08:39)
- Учу тайным знаниям про __DSB() - lloyd(21.09.2023 08:35)
- По крайней мере на кортексах-М3, -М4 что пустое чтение, что
вставленный NOP или другая команда дают достаточную задержку чтобы
запись в регистр периферии успела завершиться. - ЫЫyкпy(21.09.2023 08:31)
- Спасибо, посмотрю завтра. - Eddy_Em(20.09.2023 18:36)
- Были как-то глюки в работе ADC и DMA, причем не на всех
экземплярах, а где-то 50/50. Вылечилось добавлением барьера DSB
сразу после включения тактирования DMA, там где в исходнике
"//Dummy read for a pause". - ЫЫyкпy(21.09.2023 05:23)
- Может при калибровке АЦП выполняются какие-то преобразования,
которые и передаются по ДМА? Я настраиваю у себя ДМА после всех
настроек-калибровок и непосредственно перед запуском
преобразований. - il-2(20.09.2023 17:38)
- Пробовал и калибровку до настройки DMA делать, и вообще отключал калибровку - все равно ничего не меняется. - Eddy_Em(20.09.2023 17:52)
- Не ваш случай (сбои в работе DMA)? => reZident(1 знак., 20.09.2023 17:28, ссылка)
- Не, у меня регулярные каналы. Eddy_Em(264 знак., 20.09.2023 17:54)
- В общем, вот такой код: Eddy_Em(1889 знак., 21.09.2023 15:45)