Jump to content

    

iamnot

Участник
  • Content Count

    41
  • Joined

  • Last visited

Community Reputation

0 Обычный

About iamnot

  • Rank
    Участник

Recent Profile Visitors

293 profile views
  1. Дескриптор это самодельная надстройка над данными, которая отделяет пакеты друг от друга? Если это так то можно не добавлять дескрипторы вообще, то есть: есть очередь (речь о приеме) в нее складываются данные как есть. Это все происходит в ISP. Так как протокол SLIP уже имеет признаки начала и конца, то задача отделения одного пакете от другого не стоит. В задаче просто разбираем очередь и выполняем действия согласно данным. Там же и отбрасываем неправильные пакеты. При отправке формируем ответное сообщение по принципу как я писал выше. Итого одна очередь на прием, одна на отправку. Во внутренности фифо лезть не надо. if(len > 0 && DSCTxQ.GetFree() >= sizeof(len) + len) вместо + видимо надо * И фигурных скобок добавить
  2. Делаю так: Есть полезные данные и их длина. 1. Добавляем служебные данные (адрес, контрольная сумма и пр.) 2. Проходим процедурой формирования байтстаффинга и скидываем все это в очередь 3. включаем передачу и в прерывании UART оно само отправляет данные, пока в очереди что-то есть
  3. Можно определить свою структуру в которой будут поля TIM_TypeDef * и свои необходимые. И на вход фунции TIM_GetTimeStamp_ms подавать ее.
  4. Эта структура указывает не на оперативную память а на адрес периферии.
  5. Если говорить о внутренних шумах, то многое зависит от разводки платы. Даже на АЦП в микроконтроллерах добиваются дрожание только младшего разряда на 12 битном АЦП (судя по рассказам коллег, хотя я с трудом верю). Поэтому производитель пишет максимум, а что из этого удастся выжать, это уже зависит от разработчиков как железа так и софта.
  6. Если на серву, которая не кругового вращения, а определенного сектора, подать неправильную частоту управляющего импульса, то она может начать вращаться по кругу. Период управляющих импульсов должен быть 20мс. Это для SG90 и MG995, для других может быть другое.
  7. Убрали Вы их из-за того, что привыкли писать без скобок. Об этом я писал ранее - непривычный стиль. А нашли баг потому что компетенция, свежий взгляд. Так как при наличии скобок код компилировался, то скобки были не причем.
  8. Так и знал что зацепятся за эту формулировку. Под не обращает внимания имелось ввиду что глаз не цепляется за скобки а выбирает чисто выражения, но блок кода выделен явно. Но это похоже перешло в очередной холивар. Вот ключевая фраза. Ее и придерживаюсь. Пишу со скобками и считаю что при передаче исходников между людьми с кодом со скобками будет меньше проблем.
  9. Тоже поддерживаю @one_eight_seven. Скобки - без скобок это дело привычки. Но если добавление скобок вызывает проблему при компиляции, то такой код в утиль. Те кто использует скобки уже не обращает на них внимание, взгляд цепляется только за выражения. А вот запрет на использование continue, и break печалит. Для меня гораздо понятнее выглядит код типа: err_t func (int len) { if(len == 0) { return ERR_LEN; } if(len > MAX_LEN) { return ERR_LEN; } ... return ERR_NO; }
  10. Пробовал. Правда не R19 увеличивал, а R19 выпаял вообще, поставил подстроечный резистор от цепи PW до земли, центральный вывод подстроечника на вывод 2 операционника. Номинал подстроечника - 500кОм. Остальные детали оставил как есть. Ну и пробовал настроить в воде - тоже не помогло. Хотя нужно было наверное подстроечник поставить вместо 120кОм. Хорошая мысля приходит опосля.
  11. Кстати насчет R3, пробовал его уменьшать, это первое что пытался сделать, Но это не помогло. также пробовал немного расстраивать контур и это тоже не привело к нормальным результатам.
  12. Похоже что Вы правы и дело в датчике. Сегодня проверял еще раз, но уже держал сам датчик в руке и при сжатии датчика он начал показывать похожие на правду значения. Тогда вопрос как его правильно крепить? Жестко на клей или все же на подвесы или на пластину возле юбки? А что значит стробирование приема? Выключение приемника во время передачи импульса и включение в ожидаемое время прихода ответа?
  13. Задача понять, почему у кого то работает в воде, у кого то нет. В чем отличие? Я видел как минимум 3 вариации платы, сколько вариаций прошивок вообще не известно. Разновидности схем я пытался компенсировать. Основные отличия в схемотехнике: R1 - 56 кОм вместо 20 кОм R8 - 75 кОм вместо 56 кОм R9 - 470 кОм вместо 820. Номиналы конденсаторов не смотрел.