Заново файлы создавай или конвертируй, они уже в другой кодировке...
Странно. Конвертируется, вроде-бы, правильно. А вот в свежесозданном (кубическом, чтобы железно собралось) проекте при переключении на русский регистр вместо букв набираются только вопросительные знаки. Кодировка стоит Russian Windows-1251, проверил. Что еще крутить? Кейл 5.28.0.
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Здравствуйте. Нужно как-то генерировать импульсы на STM32F103 на двух выводах. Импульсы управляют драйверами транзисторов, которые не должны быть включены одновременно. Проблема в том, что у этих импульсов нет фиксированной частоты и ширины. Но надо обеспечить возможность переключения периодом 10 мкс. Ширина импульса и интервалы задаются неким массивом, каждая ячейка определяет состояние драйверов в течение 10 мкс. Если значение в ячейке положительное - включен один драйвер, отрицательное - другой. Пока на ум приходит только таймер, который по прерыванию каждые 10 мкс перемещает указатель на следующую ячейку и просто переключает выводы GPIO. Выводы тактируются от шины 32MHz, но в настройках GPIO можно установить 50 МГц. Я правильно понимаю, что это скорость, с которой способен переключаться вывод и он все равно будет 32Мгц? По идее GPIO должен справится с задачей, но хотелось бы какой-то более красивый вариант, но в голову больше ничего не приходит.
_________________ Я конечно все понимаю, но этого я не понимаю.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
К сожалению доступны только каналы 2 и 5 таймера. У них нет комплиментарных выходов, но есть ШИМ. Может быть организовать шим для каждого вывода с периодом 10мкс и коэффициентом заполнения 100%. А в другом таймере сделать счетчик, который будет включать/выключать каналы шим в зависимости от полярности ячейки. Ну и задержку небольшую на переключение каналов.
_________________ Я конечно все понимаю, но этого я не понимаю.
К сожалению доступны только каналы 2 и 5 таймера. У них нет комплиментарных выходов, но есть ШИМ.
Если нет dead-time, то можно взять два таймера с ШИМ и одновременно записывать в них значения скорректированные вручную так, чтобы между ними был необходимый dead-time. PS: А вообще надо выбирать МК соответствующий задаче.
Здравствуйте. Еще один вопрос. Мне необходимо синхронизировать цепочку таймеров, чтобы триггером служило событие обновления. Вопрос в том, происходит ли событие обновления при первом запуске таймера? Мне нужно чтобы все таймеры запустились одновременно по цепной реакции, а не так, чтобы каждый таймер сначала досчитал до перезагрузки и только потом запустил следующий. Запустить всех от от одного триггера не вариант. Они должны именно управлять друг другом.
_________________ Я конечно все понимаю, но этого я не понимаю.
Добрый день! Keil uVision V5.23 (с Keil uVision V5.28 таже фигня), камень STM32F103C8T6. Проблемы с дебаггером. В режиме Use Simulator не могу установить breakpoint, вернее могу, но далеко не везде. Например, не получается поставить -
/* Private user code ----------*/ /* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM1) //check if the interrupt comes from TIM1 { Тут получается } } void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) после этого не получается { if(htim->Instance == TIM1) { if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) { Тут не получается } if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) { Тут не получается } } } Затем, иногда можно, иногда нет.
Кроме того, если дебажу в Use ST-link debugger, breakpointы отлично ставятся, НО!!! Регистры, например, CNT TIM1, при останове показывает рындомные (random, случайные) значения. Первый и второй случай сводят на нет возможность отладки в Keil. Получается что отладка как таковая отсутствует. В жезном железе (прошитый камень) - работает. Может кто знаком с проблемой? Как отлаживать то? Варианты есть?
Нужно ветку форума открыть "Нужен ли симулятор или лучше отлаживать в железе". А если серьёзно, может кто окажет информационную поддержку? Такого ведь не может быть, что весь мир использует STM32 без симулятора.
Кроме того, если дебажу в Use ST-link debugger, breakpointы отлично ставятся, НО!!! Регистры, например, CNT TIM1, при останове показывает рындомные (random, случайные) значения.
Периферия живет своей жизнью, в частности что бы таймер фризился надо конфигурировать Debug MCU configuration register. Лучший дебаггер это Ozone c jlink. И начните изучать периферию а не тыркайтесь в калокубах...
Этого просто не может быть... Контроллеры такого уровня и без симулятора? Смысл тогда? Раскладывать на столе всё железо с осциллографами, да не с простыми, а золотыми (отматывать десяток другой экранов вперед-назад). Подключать различные генераторы и др. источники сигналов. Например, отладить разгон - торможение асинхронной машины на максимальное ускорение (замедление) не допуская условий срыва синхронизма... Даже такая задача будет нерешаема. НЕ МОЖЕТ БЫТЬ! С симуляторами для avr вообще проблема отсутствует...
Расцениваю этот вопрос как попытку "закарнавалить" тему.
Вам уже всё сказали. Какой смысл в симуляторах если на реальном железе (с эмулятором) всё можно отладить? И это будет намного качественнее, так как симулятор - это одно, а реальное железо - совсем другое. И если в реальном железе такого уровня как современные ARM-ы производители делают кучу багов (почитайте errata) + баги симулятора - и какой смысл в такой отладке??? Отладите в симуляторе, а в реальном железе оно работать не будет с вероятностью 90%. ARM - это не примитивный AVR - написать качественно на него симулятор на порядки сложнее. И также на порядке - менее нужно, так как ARM имеет развитые встроенные аппаратные средства отладки. В отличие от AVR. Среди реальных разработчиков на ARM никто не пользует симуляторы - никому оно не нужно. В крайнем случае что-то сложное алгоритмически (и не привязанное к железу) можно отладить на компе под VS или билдером. А потом просто перетащить как есть на ARM.
Дело в том, что почти всегда "сложное алгоритмически"... На симуляторах (да в том же протеусе) мне приходилось сотни раз "катать" алгоритм взад-вперёд, добиваясь точной работы. Не знаю как у других (статистику не собирал), а у меня проекты, после отладки в симуляторе запускаются (тьфу, тьфу, тьфу) всегда. Для примера мааааленький фрагментик алгоритма управления двигателями геостационарной платформы. Вобщем буду искать... Для начала такая тактика: Отладка в симуляторе Keil отдельных фрагментов программы камень stm32f103c8 (доступен для отладки) Далее, при необходимости, проверить в железе осциллом. Потом подзаливать в F4xx и смотреть что получилось....
Добавлено after 6 minutes 24 seconds: Вот картинка, не ту вставил
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения