![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Доброго всем времени суток. Нужно оцифровывать напряжение с аналогового датчика и передавать данные в ПК для дальнейшей обработки. Есть плата (даже три) на STM32. АЦП, вроде, настроил -- в прерывании UART запускается однократное преобразование. Данные по UART запрашиваются каждые 50 мс. Решил проверить. Датчика самого нет, так как этой частью образовательного проектика занимается одногрупник, поэтому решил проверить с помощью переменного резистора.
Подключил. Запускаю ... Кручу движок резистора ... АЦП начинает менять данные только секунд так через 10-15. Перестаю крутить -- тоже самое, данные меняются еще секунд 10-15. Думал, может с UART чего не так, так нет, с ним все в порядке: в его прерывании вызываю функцию-заглушку, в которой инкрементируется статическая переменная, вместо запуска АЦП, и получаю то что и должно быть (такая себе пила). Попробовал другую плату -- опять та же ерунда. Возникает ощущение, что где-то есть довольно большая паразитная емкость, которая сначала долго заряжается, а потом долго разряжается. Вопрос где? Провода по дороге к переменному резистору? Сам переменный резистор? Заранее благодарен любому совету. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
я думаю что ошибка в коде ..... особенно после
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
АЦП в STM32 может работать как в непрерывном режиме, так и запускаться однократно по требованию. Исследуемый процесс изменяется довольно медленно, поэтому и решил не гонять АЦП постоянно. Пробовал и в непрерывном -- результат тот же самый. Попозже выложу код, так как сейчас нет возможности сделать это. |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Притом, скорее всего, в коде приложэния на компьютэре.
Поскольку Вы, наверное, вместо того, чтобы воспользоваться для начала каким-нибудь известным терминалом -- написали своё не Delphi, и теперь удивляетесь, почему оно неработает. |
|||
|
||||
| baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Зря Вы так. Да, приложение самописное, на Qt, но написано и отлажено больше года назад, и за это время с ним проблем не возникало. |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Что -- зря? Оскорбил писателя на Qt предположэнием, что он пишэт на Delphi? Ничего, походишь оскорблённым, не переломишься. |
|||
|
||||
| baldman88 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
А вот хамство не есть хорошо. Ну да ладно, дело Ваше, ведь хамить легче, чем давать дельные советы. А ошибка оказалась банальной. Сброс флага прерывания на прием в обработчике UART стоял не в том месте. |
||||
|
|||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |