Ну, не.
-
- Барбос, и где были грабли? - Sl(31.07.2025 19:08)
- Грабли? Это не грабли, а целая борона. Задержка (функция) в главном цикле на 5 миллисекунд. Несмотря на все мольбы эта херня там появилась. Бapбoc(378 знак., 31.07.2025 20:09)
- В продолжение темы. В том смысле, что всё то же поделие. Бapбoc(756 знак., 29.07.2025 22:01)
- п.2 Куды смотреть? Ну и куды нам смотреть? Кот в студию. Люблю
глумиться над чужим котом :-) - il-2(30.07.2025 06:58)
- Кот не мой, моя рулить. Да и завертелось уже всё. Дело было не в бобине. - Бapбoc(30.07.2025 18:38)
- 1. Внутри прерывания TIM3 - не сбрасываете флаг прерывания TIM3 - я
не знаю в каком режиме работает TIM3. Может там надо обновлять
регистры CNT или COMP. 2. для тех переменных которые изменяются в
одном из прерываний - не используете volatile - при использовании
этих переменных в другом месте, не запрещаете временно это
прерывание или все прерывания Sl(116 знак., 29.07.2025 23:03)
- Спасибо за volatile. Посмотрю. - Бapбoc(29.07.2025 23:11)
- Майнер биткоина в соседнем потоке мешает. Когда закачивает в облако
готовый блок, таймер сбоит, поэтому лишь иногда. - SciFi(29.07.2025 22:18)
- Бе-бе-бе. - Бapбoc(29.07.2025 22:20)
- Сказка ложь, да в ней намёк. Может, стек где-то портится или иная
неведомая хрень. - SciFi(29.07.2025 22:22)
- Там текста того, что крутится постоянно, всего ничего. Почти всё
аппаратно. - Бapбoc(29.07.2025 22:33)
- При некотором умении это не препятствие :-/ - SciFi(29.07.2025 22:35)
- Таки, да. Спасибо. Было и у меня такое пару раз. Пилишь в одном месте, ломается совсем в другом. - Бapбoc(29.07.2025 22:43)
- При некотором умении это не препятствие :-/ - SciFi(29.07.2025 22:35)
- Там текста того, что крутится постоянно, всего ничего. Почти всё
аппаратно. - Бapбoc(29.07.2025 22:33)
- Сказка ложь, да в ней намёк. Может, стек где-то портится или иная
неведомая хрень. - SciFi(29.07.2025 22:22)
- Бе-бе-бе. - Бapбoc(29.07.2025 22:20)
- п.2 Куды смотреть? Ну и куды нам смотреть? Кот в студию. Люблю
глумиться над чужим котом :-) - il-2(30.07.2025 06:58)
- В наборе инструкций Cortex-M3/M4 существует семейство инструкций
LDREX/STREX, так что если адрес считывается инструкцией LDREX,
следующая инструкция STREX может записать данные по этому адресу
только в том случае, если известно, что адрес не был затронут.
Обычно это означает, что инструкция STREX выполняется успешно, если
с момента выполнения LDREX не возникало прерываний («исключений» в
терминологии ARM), и завершается неудачей в противном случае. - Zikon(22.07.2025 20:04)
- Было обсуждение. Nikolay_Po(285 знак., 22.07.2025 21:04, ссылка)
- bit-banding? - IBAH(22.07.2025 15:58)
- Программист все правильно сделал, стандартный подход обнулить по
маске и записать новое значение CTRL_PORT &= MASK; CTRL_PORT
|=value; _ctac_(229 знак., 22.07.2025 15:12)
- Когда таким манером работаешь с регистрами периферии, надо держать уши по ветру и нос на макушке. Иначе можно словить интересные эффекты вроде такого - il-2(1 знак., 22.07.2025 15:58, ссылка)
- "CTRL_PORT &= MASK; CTRL_PORT |=value;" - это два чтения и две
записи. Зато исходник нагляден, да. Но такая штука не всегда
допустима. SciFi(37 знак., 22.07.2025 15:15)
- Это да - в библиотеке STM макрос так и работает _ctac_(111 знак., 22.07.2025 19:49)
- +1. Регистры описаны как volatile, так чта компилятор эти две
операции в одну сам не склеит, надо руками. - LightElf(22.07.2025 15:55)
- А есть ли у ARM Cortex подходящие инструкции, чтобы сделать
модификацию? Вроде бы нет, раз уж они для сброса и установки бит
выходов GPIO сделали разные регистры. Nikolay_Po(104 знак., 22.07.2025 17:27)
- Нет таких инструкций. На то он и RISC, чтобы голый load-store. Для GPIO, как вы заметили, часто есть спецуевые регистры BSR/BRR/BSRR, чтобы одной записью установить-сбросить группу битов. Для остальных регистров надо извращаться тем или иным способом. Например: если часть битов фиксирована, а часть меняется - то можно просто писать новое значение. Типа такого: LightElf(157 знак., 22.07.2025 18:51)
- А есть ли у ARM Cortex подходящие инструкции, чтобы сделать
модификацию? Вроде бы нет, раз уж они для сброса и установки бит
выходов GPIO сделали разные регистры. Nikolay_Po(104 знак., 22.07.2025 17:27)
- Если это битовое поле выровнено по границе одного из байт, то можно
попробовать через указатель на uint8_t по адресу смещенному
относительно начального адреса этого регистра. Так побайтно в H/L
GPIOx->ODR пишут и прокатывает. - Vector(22.07.2025 00:15,
)
- Вообще говоря, так можно работать не со всеми регистрами. Sl(104 знак., 21.07.2025 22:39, картинка)
- Бывают регистры, которые умеют в побайтовую запись. Но в общем
случае да, чтение, изменение чего надо, запись. Есть даже такое
словосочетание "load-store architecture". SciFi(1 знак., 21.07.2025 20:15, ссылка)
- Уже спасибо. А эти, которые умеют побайтово, имеют какое-нибудь
слово-признак? Или это в описании регистра? - Бapбoc(21.07.2025 20:17)
- Определить к какой шине относится регистр можно по его адресу, в 2.2.2 Memory map and register boundary addresses. Часть периферии сидит на шинах AHB1/AHB2, на них возможен доступ к байтам и полусловам. Другая часть подключена через AHB/APB bridges и там доступ только 32-разрядными словами. ЫЫyкпy(465 знак., 22.07.2025 01:20)
- В мануалах STM32 про все регистры сказано, как к ним можно
обращаться, ЕМНИП. Нужно подняться до шапки соответствующего
раздела. SciFi(1 знак., 21.07.2025 20:20, картинка)
- И как же писать побайтово, если word level? - Andreas(21.07.2025 20:23)
- а если так? SciFi(1 знак., 21.07.2025 20:28, картинка)
- Так наверно можно, а что за стм32? В stm32h743 такой прелести не
нашлось. - Andreas(21.07.2025 20:50)
- STM32F407 - SciFi(21.07.2025 20:51)
- Так наверно можно, а что за стм32? В stm32h743 такой прелести не
нашлось. - Andreas(21.07.2025 20:50)
- а если так? SciFi(1 знак., 21.07.2025 20:28, картинка)
- Ещё спасибо. 2000 страниц меня угнетают физически. - Бapбoc(21.07.2025 20:22)
- А не надо было их распечатывать на бумаге... - NeoPower____(22.07.2025 19:54,
)
- Гораздо больше угнетает, когда вообще нет страниц, а проц не менее толстый :-) - SciFi(21.07.2025 20:22)
- А не надо было их распечатывать на бумаге... - NeoPower____(22.07.2025 19:54,
- И как же писать побайтово, если word level? - Andreas(21.07.2025 20:23)
- Уже спасибо. А эти, которые умеют побайтово, имеют какое-нибудь
слово-признак? Или это в описании регистра? - Бapбoc(21.07.2025 20:17)
- Барбос, и где были грабли? - Sl(31.07.2025 19:08)