Pull to refresh
-2
0
Send message

(сарказм on)ну да, действительно.. очень много и не понятно (сарказм off):

/** @addtogroup Exported_macro
  * @{
  */
#define SET_BIT(REG, BIT)     ((REG) |= (BIT)) 
#define CLEAR_BIT(REG, BIT)   ((REG) &= ~(BIT)) 
#define READ_BIT(REG, BIT)    ((REG) & (BIT)) 
#define CLEAR_REG(REG)        ((REG) = (0x0)) 
#define WRITE_REG(REG, VAL)   ((REG) = (VAL)) 
#define READ_REG(REG)         ((REG)) 
#define MODIFY_REG(REG, CLEARMASK, SETMASK)  WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
#define POSITION_VAL(VAL)     (__CLZ(__RBIT(VAL))) 

П.С. Сниппиты к сожалению устаревшие

1) да, на счет misra я ошибся, но везде в основном увидите рекомендации о том, чтобы избегать использование полей. Все все остается под контролем программиста. В разных компиляторах и разных архитектурах поведение может быть разным.

2) Как на счет атомарного доступа к нескольким битам? :) Только не говорите что обернете все это через union...

Так-то оно да, но статься исключительно об STM32... сответственно я и имею ввиду исходники CMSIS от ST ( а не LL, SPL или HAL)

Действительно, только лет существует CMSIS и вы думаете что никто не догадальься использовать битовые поля в структурах? А знаете почему?

1) они запрещены во многих стандартах таких как misra и т.п.

2) теперь у вас не uin32_t для накпример регистра SR а структура... Как мне из него или в него записать сразу несколько бит (реторический вопрос, хочу на ответ посмотреть)? Учитывая что вы используете FreeRTOS да и в принципе еще есть прерывания... обычно нужно сначало сформировать конкретную маску (например для установки битов) и одной инструкцией биты регистра установить. В вашем методе это не возможно.

П.С. CMSIS давно внедрили макросы для ститывания бита/битов из регистра, на читабельности никак не сказывается.

присоединяюсь к комментариям выше - ради повышенной типобезопасности

Лучшеб гнались за сокращением времени для понимания написанного кода! Строчку мы пишем один раз, а вот читаем гораздо чаще. И каждый раз всматриваться и вникать в каждый символ сильно утомляет… Хнык, хнык :-(
сначала протестируйте -3/3*3, потом идите спокойно спать. Делить меньший тип большим не есть хорошо.
А зачем вы временные рамки ставите? Я вот хочу например сделать всем жизнь лучше, по утверждению выше я никого никогда нанимать не смогу и всегда всех буду вынужден уволить.
«В любом коллективе есть человек, увольнение которого сделает жизнь всех оставшихся лучше. Если ты не знаешь у себя в колективе такого человека, то вероятнее всего такой человек — ты» (с)

Эх, смотрю кто-то (плюсующие и автор данного бреда) не догоняют как это утверждение работает. Ну что же, разберем… В кол-ве из 5 человек есть один, которого надо уволить на благо других… Увольняем. Теперь в кол-ве из 4 человек ДОЛЖЕН быть чел, увольнение которого пойдет на благо других… Увольняем… 3, 2 и остался один… Его тоже увольняем… Теперь у нас коллектив из 0 человек… Кого увольнять будем?))
к сожалению нет, было под паролем. То что ESP8266 понял из за случаного название которое генерируется для WiFI в случае использование какой-то прошивки (уже не помню. node-mcu или arduino). Около 2 лет назад дело было. Еще владею стиралкой CANDY BWM 1410PH7R/1-S, в нее тоже ESP8266 запихнули (гады). Вычислил через роутер Mirkotik, так как в списке подключенный устройв можно много информации получить о wifi модуле… Как-то так…
мда, написать код на питоне, чтобы его потом подравить для генерации в С код, чтобы потом получить хз какое ускорение… Может нужно было вручную сразу переписать (необходимый) код на С?
эх, были бы в аеропорту в Минске, я там столько ретрансляторов(ну что там у них, я хз) на ESP8266 обнаружил))
Про энергопотребление — вранье полное. Сравнивать надо одинаковый код на минимально возможной частоте. И много чего еще поввключать, чего в ардуино нет.
и как это работает? почему киллер фича не описана? Ведь можно было вдохновиться например этой статьей hackspace.raspberrypi.org/articles/what-is-programmable-i-o-on-raspberry-pi-pico
Для «Душегуба». Кто играл в киберпанк, поймет)
Эмулировать программно нажатия можно разными способами. Вам ничего не мешает написать свой драйвер клавиатуры, который бы эмулировал нажатия на уровне ядра. То что у вас там не работает, я не знаю. Видимо програмы написанные кем-то и все… Я понимаю например, когда вам надо эмулировать нажатия на какой-нибудь платвоме, куда можно подключить клавиатуру, но ОС не windows/linux… Больше вариантов нет…
есть такая мудрость — пессимист, в отличии от оптимиста, может быть только приятно удивлен)
Я что-то в статье не увидел, чем програмный продукт уступает аппаратному???
после ранаблов, перестал читать…
он падает вниз головой.
1
23 ...

Information

Rating
Does not participate
Registered
Activity