-
Постов
1 225 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Весь контент VladislavS
-
Это чтобы успеть лишний раз подумать а надо ли оно мне :)))
-
Нужно разлочить STM32F103CB
VladislavS ответил ДЕЙЛ тема в STM
Что-то не очень похоже на STM32. Какой-то клон? -
+1. Что 150 мкс, что 150 мс - суть одно и то же. При внутрисхемной прошивке вообще секунды контроллер в ауте. Схемотехника должна это предусматривать.
-
VS Code + gcc/gdb
VladislavS ответил Шаманъ тема в GNU/OpenSource средства разработки
А где отладка то? Регистры процессора и периферии, дизасм? -
Чисто в педагогических целях стоит решить задачу самому.
-
J-Link это всего лишь адаптер, он ничего сам не делает. Делает программа, которая с его помощью прошивает. Программ этих чуть больше чем дофига и каждая делает посвоему. Собственно и OpenOCD через J-link шить умеет.
-
На время отладки все остальные прерывания отключить, колбэки убрать. Добиться отсутствия пропусков и понемногу возвращать функционал.
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
Вообще-то, Кернигана и Ритчи 🙂 Это никому не повредит. Но что-то мне подсказывает, что там ни про работу с volatile сущностями, ни про оптимизирующий компилятор, ни про то как данные с задержками по шинам бегают, ни вообще про эмбэдд ни слова не будет. А до Страуструпа ещё надо дорасти.
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
Тут, кстати, "они там все" запросто получат двойной вход в одно и то же прерывание. Но об этом хомячкам не расскажут.
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
Между чтение для обработки и повторным чтением для очистки могло произойти что угодно. Это Секрет Полишинеля. Впрочем, тот код что для них индусы пишут, ещё ничего. :)))
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
А потом у вас прерывания теряются. Тут вы очистили флаги, которые "вскочили" во время обработки текущего прерывания, не обработав. Смотреть прямо в регистре периферии микроконтроллер не может. Он сначала считывает в регистр процессора, а затем смотрит. Локальная переменная будет расположена в регистре процессора. Не нужно много раз читать регистр статуса в регистр процессора, это напрасная трата времени в прерывании.
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
Искать надо там где потерял, а не там где лучше видно. Вроде это очевидно.
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
Да там много, на первых страницах разделела ARM, RISC-V читать.
-
Теоретически да. Несколько тактов "под угрозой". Безопаснее будет TIMER_INTF(TIMER1) = ~i;
- 79 ответов
-
- 1
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
А я бы вообще вот так сделал u32 i = TIMER_INTF(TIMER1); TIMER_INTF(TIMER1) = 0; if (i & TIMER_INTF_CH0IF) { ... } if (i & TIMER_INTF_CH1IF) { ... }
- 79 ответов
-
- gigadevice
- новичок
-
(и ещё 3 )
C тегом:
-
STM32F - режим output compare
VladislavS ответил dimir тема в STM
Никак оно не будет работать. Сто раз уже писали - нужен DDS - возьми DDS и не сношай людям мозги. -
Нет перехода к определению переменной или функции
VladislavS ответил firstvald тема в IAR
Это совсем про другое. В исполняемый файл добавляется исходный код. Browse information в настройках среды включается. -
Почему 1 + 0.1 = 1.0000002 ??? и что с этим делать?
VladislavS ответил RR2021 тема в ARM
После макросов min и max деже читать этот ахтунг неохота. -
Почему 1 + 0.1 = 1.0000002 ??? и что с этим делать?
VladislavS ответил RR2021 тема в ARM
Что-то мне подсказывает, что переход в double будет дешевле делений/умножений/приведений. -
Почему 1 + 0.1 = 1.0000002 ??? и что с этим делать?
VladislavS ответил RR2021 тема в ARM
Какая разница, будет у вас там 2e-8 или 1e-3 ошибка, если вы на всё что меньше 0.1 в итоге чихаете? PS: Как писали раньше, принимаем младший разряд int за 0.1 и работаем в целых числах. -
Почему 1 + 0.1 = 1.0000002 ??? и что с этим делать?
VladislavS ответил RR2021 тема в ARM
-
У меня для совместимости с разными компиляторами (тулчейнами) вот такая конструкция используется #ifdef __cplusplus extern "C" { #endif #ifdef __ICCARM__ int __low_level_init(void) #else void SystemInit() #endif { // Код инициализации железа #ifdef __ICCARM__ return 1; #endif } #ifdef __cplusplus } #endif А с чего вы взяли что там одиночная переменная? Ясно же, что пример тестовый, что там реально в куче ХЗ.
-
-
STM32 калибровка RTC
VladislavS ответил Halfback тема в STM
Это только японские бракоделы свои машины постоянно отзывают. ВАЗ себе такого не позволяет. -
STM32 калибровка RTC
VladislavS ответил Halfback тема в STM
Чувствуется инженерный подход :))) Незначительно! Результат ничто - процесс всё!