Jump to content

    

Baser

Свой
  • Content Count

    1728
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Baser

  • Rank
    Просто Che
  • Birthday 04/08/1967

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

5852 profile views
  1. Если это локальная переменная, то значит вы выявляете ошибку не напрямую, а уже впоследствии, по результатам неправильной работы функции. В начале топика вы дали данные только исходя из вашей первой версии ошибки (порча в прерывании), поэтому из них ничего не понятно, как ваша функция работает. А ошибка в косвенной адресации прекрасно может портить и локальные данные в стеке. Для проверки можете сделать этот счетчик статическим или глобальным и запустить тест. Если все равно будет портиться, то дело не в этом.
  2. Другая самая распространенная возможная ошибка - выход за границы массива при косвенной адресации. Посмотрите в *.map файле линковщика, какие переменные он расположил до и после вашего счетчика. И проверьте работу с этими переменными. Все ли корректно. Пору раз по этим граблям проходил. Причем причина может быть даже и не в соседних переменных, просто они - самый вероятный случай.
  3. Можете не надеяться. Максимум что в Input CCRх есть, это делитель на 8. Можно снизить число прерываний в 8 раз в сравнении с простым счетом импульсов по прерываниям порта. Ну и опять же, задачу свою не озвучили, какую частоту нужно считать, с какой точностью и как быстро? Одно дело, когда частота 1 кГц с точностью в 0.0001 Гц и другое дело, когда 10 МГц с точностью 1 Гц. Или включая и то, и другое. Методы измерения будут различные.
  4. Чего-то я вашу задачу понять не могу. Зачем вам 4 входа? Как мультиплексор? Таймер все равно имеет только один счетный регистр (таймер это один таймер :)) и в один момент может считать импульсы только от одного входа. Если нужно одновременно считать импульсы на четырех входах - нужно четыре разных таймера.
  5. Тут замечу, что нельзя валить в кучу ширину программной памяти и ширину данных. В ПИКах с их DSP-шной архитектурой ширина программной памяти действительно разная, напр. 24-х битная. Но данные все равно стандартные 8-и битные. И внутреннее ОЗУ 8-и битное, и при упаковке данных в программную память данные тоже 8-и битные.
  6. Мне с самого начала не понравилась форма сигнала противо-эдс на шагах паузы. У вас трапеции направлены в другую сторону. Как-то неправильно. Погуглил по картинкам, вот похожие картинки, человеку тоже не нравились: BLDC BEMF not right Пишет, что починил это, что мотор крутится при таких картинках чуть ли не в противофазе к норме. Посмотрите, может поможет...
  7. Таки наверное да. При проблемах с флеш памятью, может. Было у меня однажды - ошибся при отладке, программа начала стирать нулевую страницу флеш (как раз в STM32F051). Выглядело это забавно, но я не стал разбираться к чему это приводило, уже не помню - может и ядро останавливалось... Исправил ошибку и "попилил" дальше.
  8. "Сабж" (МК) не умеет останавливаться. Разве что только все тактирование отключается. Посмотрите под отладчиком, где в это время процессор "крутится".
  9. Как показывает моя практика разработчика, 99.9% ошибок - это твои собственные ошибки. Если вы видите что-то, что противоречит здравому смыслу (АЦП все время выдает 0), то ищите свою ошибку.
  10. Может быть что-то пошло не так и вы запускаете АЦП в паузе ШИМа. Или длительность PWM_ON мала, и не хватает времени. Поставьте метку B12_OFF сразу после готовности результата АЦП и проверьте, в те ли моменты измеряете. Метод измерения BEMF при PWM_ON хорош только при большом коэф.заполнения на большой скорости. На малой скорости лучше измерять при PWM_OFF да еще и с усилением BEMF.
  11. Вроде по картинкам - открываются. Тогда почему у вас первый раз с таким же режимом ШИМа (до замены драйверов) верхние ключи не открывались? Может емкость бутстрепа увеличили? Насчет ловли противо-эдс - экспериментируйте. Может быть оборотов мало, и она совсем мала. Делитель с фильтром нужен, если будете пол-питания ловить. А если в паузе ШИМа, то он не нужен. з.ы. сегодня в рекламе Компела было про STM32G4: B-G431B-ESC1 Discovery kit у Mouser всего 16.85 Евро
  12. Смысл в нем очень большой. Если убрать диод - емкость входа будет сотни пикофарад. А с диодом - единицы пикофарад.
  13. Подтверждаю, это еще вчера вечером сломалось. Код ошибки: EX1812 Но с этой формы с ошибкой можно авторизоваться, тогда все начинает работать как нужно. Меня все удивляло, что форум исправно считает сотни гостей. Думал это только у меня так.
  14. Они не висят в воздухе, они через TVS отводят положительный сигнал помехи на землю. А питание USB отдельно. И его можно отключать (коротить на землю). И при этом сигнальные линии не будут закорочены.