-
- Может, я плохо спрашиваю, или у вас катастрофически нет опыта
отладки. Еще раз, МК получил запрос. Что он делает дальше?
Запускает АЦП или берет последнее значение АЦП, которое постоянно
измеряется в цикле? Если всегда в ответ на запрос отдавать наружу
одну и ту же константу, она принимается верно? Если скорость не
измеряется постоянно, можно сделать, чтобы было так, и класть в
циклический буфер измеренные значения, чтобы посмотреть данные в
буфере в режиме отладки и VLLV(623 знак., Вчера, 19:15)
- Наверное я плохо формулирую + видимо влияет то, что я разным людям
в разных местах отвечаю. Нет, значение с АЦП берётся по таймеру(в
обработчике прерываний), в том же таймере данные эти значения
заносятся в область данных объекта сообщений, который настроен на
передачу, а передаёт он их по запросу из вне. Так что да, он берёт
последнее значение АЦП, которое измеряется в цикле(ну только это не
основной цикл main). Я пробовал имитировать показания скорости
(вместо показаний с Lem(1720 знак., Вчера, 23:34)
- Отлично, прогресс. Датчик ни при чём, АЦП ни при чём. "Если шлю
константу - то всё нормально, если шлю медленно меняющийся сигнал
видны сбои". Чисто программный баг. Сопоставить полученную сбойную
информацию с отправленной можно? Допустим вместо 1000 приходит
1256, значит та самая "атомарность доступа", о которой пишет Nikolay_Po. Вот подозрительное место "значение с АЦП берётся по таймеру(в обработчике прерываний), в
том же таймере данные эти значения VLLV(589 знак., Сегодня, 06:04)
- +1. Но для начала можно оценить ещё более простой случай. ЫЫyкпy(813 знак., Сегодня, 07:46)
- Отлично, прогресс. Датчик ни при чём, АЦП ни при чём. "Если шлю
константу - то всё нормально, если шлю медленно меняющийся сигнал
видны сбои". Чисто программный баг. Сопоставить полученную сбойную
информацию с отправленной можно? Допустим вместо 1000 приходит
1256, значит та самая "атомарность доступа", о которой пишет Nikolay_Po. Вот подозрительное место "значение с АЦП берётся по таймеру(в обработчике прерываний), в
том же таймере данные эти значения VLLV(589 знак., Сегодня, 06:04)
- Наверное я плохо формулирую + видимо влияет то, что я разным людям
в разных местах отвечаю. Нет, значение с АЦП берётся по таймеру(в
обработчике прерываний), в том же таймере данные эти значения
заносятся в область данных объекта сообщений, который настроен на
передачу, а передаёт он их по запросу из вне. Так что да, он берёт
последнее значение АЦП, которое измеряется в цикле(ну только это не
основной цикл main). Я пробовал имитировать показания скорости
(вместо показаний с Lem(1720 знак., Вчера, 23:34)
- Может, я плохо спрашиваю, или у вас катастрофически нет опыта
отладки. Еще раз, МК получил запрос. Что он делает дальше?
Запускает АЦП или берет последнее значение АЦП, которое постоянно
измеряется в цикле? Если всегда в ответ на запрос отдавать наружу
одну и ту же константу, она принимается верно? Если скорость не
измеряется постоянно, можно сделать, чтобы было так, и класть в
циклический буфер измеренные значения, чтобы посмотреть данные в
буфере в режиме отладки и VLLV(623 знак., Вчера, 19:15)