Jump to content

    

interrupt

Участник
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Обычный

About interrupt

  • Rank
    Участник
  1. Не понял, почему общественность так взволновала очевидная вещь?! Потом перечитал свое сообщение и понял :laughing: Действительно, по-дурацки написал. Почему-то представил себе стандартную картинку из учебников: но в которой катушки намотаны в одну сторону. Обмозговав еще раз рисунок понял, что фактически это разнонаправленные обмотки (относительно потока). Т.о. если, например, нижние выводы взять за начало, то сигнал будет развернут на 180 градусов. Прошу извинения у всех, кого ввел в заблуждение. P.s. По теме - в правильных трансформаторах точки - первые выводы катушек, намотанных "синфазно", так, думаю, будет наиболее правильно. :rolleyes:
  2. Все верно, я тоже стараюсь лишний раз не лезть в дебри. Но вот когда приходится самому мотать трансформатор для обратноходового преобразователя, приходится вспоминать, куда там будет направлен магнитный поток и куда от него побегут электрончики.
  3. Похоже, в точку. Только пока не нашел, как это реализовать. Буду копать.
  4. А как же старое доброе правило "Буравчика"? И кто такой был, этот Буравчик... Этому учат везде, вроде, даже в школе.
  5. За советы спасибо. По поводу скорости. Обмен идет на 115200, обработка на STM32F100. Кроме этого контроллер загружен другими интерфейсами, обработкой прерываний, АЦП ну и т.п. Поэтому оптимизация времени обработки строки вроде бы актуальна. Насчет AT команд. Ну примерно к этому и иду, но не понимаю, как их быстро разбирать. Ну вот есть у GSM-модуля огромный список этих команд. Контроллер выплевывает в него одну из них. Как он находит соответствие из всего перечня команд? Была у меня и такая мысль, делать группы команд, просто через обычный "if". Но получается очень громоздко и сложно при добавлении новых команд.
  6. Ну сейчас примерно так и делается. Сначала я ищу команду "включить" потом номер канала, потом разделитель. Просто самих команд достаточно много, приходится по много раз заниматься поиском возможной команды по всей строке. Сама команда состоит из 1 слова, номера канала, уровень сигнала и т.п. - это параметры, разбираемые после обнаружения команды. За пример спасибо.
  7. Ввод может быть как человеком, так и внешним устр-вом. Как пример я привел GSM-модуль: можно ручками через терминал писать ему команды, а можно выстреливать их из контроллера. При этом последовательность команд будет разной, кол-во в общем-то тоже (0xOD выступает в качестве разделителя и флага одновременно). C CRC32 интересно, тоже думал в этом направлении. Наверно, это наиболее быстрый вариант (считать CRC32 для первого слова, искать в массиве команд. Потом CRC второго слова - искать в массиве, и так, пока не наткнулся на подходящее. Разобрал команду - пошел дальше).
  8. Ну примитивный разбор работает. Т.е. я просматриваю строку в поисках "Switch". Далее смотрю уже "off" или "on", далее объект "out", потом номер. Далее приходится снова просматривать всю строку в поисках "timer" -> номер таймера -> команда. Необходимо оптимизировать именно начальный поиск (а оп аналогии и разветвления так же). Ну например, просматриваю строку. Первая буква "S" - таких команд 10. Вторая "w" - таких команд 5. Третья "i" - таких команд 1. Проверяю, действительно ли это она ну и смотрю ее параметры. Далее нахожу разделитель, например ",". После нее 1-я буква "L" - 20 команд, 2-я "e" - 2 команды, ну и т.п. Т.е. обработка всей строки за 1 проход.
  9. Если обмотки сонаправлены (т.е. намотка в одну сторону), то при положительной фазе на первичной обмотке, на вторичной будет отрицательная. Грубо говоря, если в первичке на начале "+", то во вторичке на начале будет "-". Т.о. трансформатор разворачивает сигнал на 180 градусов
  10. Да в общем-то все данные получаются значимыми. Просто не известно, какая команда будет первой, какая последней, сколько команд будет в строке и каких именно. Т.е. строка может выглядеть так: Switch on out 1, led 7 off. А может так: led 8 on, timer1 stop, Switch on out6, led 9 off Как пример. Есть GSM-модуль, управляемый через терминал. Допустим, я ввожу команду AT+CGSN\r\n Что происходит дальше? Как контроллер обрабатывает эту строку и находит соответствие этой записи конкретной команде? Вот мне нужно реализовать примерно то же самое.
  11. Такая задача. Контроллер принимает по UART некоторые данные в виде строк разной длины и содержания. Т.е. обычные текстовые строки. В этих строках может содержаться команда для контроллера, например: Switсh on out 7, input 1 disable, Led 11 on. Строки хранятся до разбора в массиве. Размер массива ограничен, а частота поступления новых строк не нормируется. Поэтому нужно быстро разобрать строку, вычленить из нее ключевые слова и передать соответствующие команды основной программе. Задача усложняется тем, что таких слов будет около 100, кроме того, в будущем их кол-во предполагается увеличить. Как реализуется обычно такая задача? Ничего умнее, как последовательный поиск каждого слова в строке придумать не могу. Но это очень долго получается. Например, сначала придется пролистать весь массив в поисках "Led", потом опять весь массив в поисках "input" и т.д. А хочется читать строку 1 раз, по пути находя все ключевые слова.
  12. STM32F100

    Сам спросил - сам отвечаю. Все оказалось просто, просто ошибка в программе (вместо 17 канала задал время измерения 16 каналу) :laughing: . Исправил, все заработало как надо. Вот так обычно и бывает, какая-то ерунда, а сразу и не заметишь.
  13. STM32F100

    Для одного из проектов необходимо мерить напряжение Vrefint, чтобы определить питание чипа. Казалось бы, что может быть проще. Накидал такой текст: Vpwr = ADC_buf[1]; Vpwr = 4095 * 1200 / Vpwr; //Напряжение питания в мВ; и в итоге получаю 2,44 В при питающем 2,96 В. Сломал всю голову, не могу понять что не так и в какую сторону копать. Никто не сталкивался с такой проблемой?
  14. А еще если отечественные, то не всегда запускаются, особенно если их паяли пастой...