Пенсионеры так не общаются.[uquote="khch",url="/forum/viewtopic.php?p=3433187#p3433187"]Бобры вечер, люди.
Изучаю, только начал. И мне нужна помощь (не такая типа "мля, вот нагугли, кури даташиты...", крили гуглили).[/uquote]
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3434903#p3434903"]ну это потому, что HAL от ST очень упорот.[/uquote]
Я тоже так думал, пока не заглянул в SDK других производителей. Теперь даже не знаю, что думать.
В SPL и LL такого нет, все достаточно прозрачно.
На мой взгляд, лучший путь это отвязывать LL от HAL и делать нормальный генератор инициализаций по типу куба. В принципе, куб потихоньку прибавляет, но уж больно медленно.
[uquote="a5021",url="/forum/viewtopic.php?p=3434917#p3434917"]Я тоже так думал, пока не заглянул в SDK других производителей. Теперь даже не знаю, что думать[/uquote]
ну, я не говорил, что он "худший из")
[uquote="a5021",url="/forum/viewtopic.php?p=3434917#p3434917"]отвязывать LL от HAL и делать нормальный генератор инициализаций по типу куба[/uquote]
дык уже. Куб умеет для множества периферии генерить исключительно LL. Осталось теперь уйти от FooBar_InitTypeDef-ов - в LL они не обязательны, можно все расписать как последовательность вызовов LL_SomePeripheral_SetFooBar(чототам), которые почти все макросы или static inline - и будет совсем ня.
Самое главное , что у вас есть желание изучать.
И сообразительность достаточная, хотя и подозревал вас по первости - думалось кто-то троллит кося под нуба.
А на ARV не обращайте внимание, он не против вас он против всего.
[uquote="dosikus",url="/forum/viewtopic.php?p=3434996#p3434996"]И сообразительность достаточная,[/uquote] - если бы... Иногда поражаюсь своей тупости. По 10-15 раз одно и то же читаю - не могу догнать.
[uquote="dosikus",url="/forum/viewtopic.php?p=3434996#p3434996"]А на ARV не обращайте внимание, он не против вас он против всего.[/uquote]
-- для меня здесь любое мнение важно
Вас всех действительно кинуло в крайности. Разные. Мне надо сохранить баланс. У меня очень много планов и мне не до холиваров. У меня мало времени. Надо успеть.
[uquote="ARV",url="/forum/viewtopic.php?p=3435014#p3435014"][quote="dosikus"]я против бессмысленности и глупости.[/uquote]
Я понял ваш подход. Не сомневаюсь, что в нем много разумного. Кому-то его хватает. Мне - нет.
Можно я сам выберу себе смысл? Кто-то решает кроссворды. Кто-то собирает марки. Я интересуюсь этим. Вот и все.
Я для себя понял МК и STDlib(HAL) так. Есть автомобиль(любой), в нем есть педали,руль,переключатель скорости и проч. Получил права,сел и поехал.Это в случае HAL. Но это может быть и грузовик и Ока и бульдозер. И вот чтобы понять что под капотом и нужен RM и DS. В CMSIS все описано и создаем мы изделие уже под себя. Изучать прямое управление крайне рекомендую. Да и по объему это будет меньше чем изучение тонкостей HAL и LL.
dosikus
Обьясните мне пожалуйста такой момент. Опять тупить стал, не лезет.
запись
PORTB |= 1<<7; означает сдвинуть 1 на 7 положений (битов) влево
Говорится ясно. Но опять туплю...
Ведь 1 - это десятичное число. Мы его сдвигаем влево и что? Получаем двоичное??!!
Как так?
И в довесок. То есть есть это тоже самое, как написать
PORTB |= 128;// dlya AVR
PORTB |= 0x80;
Так можно писать?
И это действие для STM производится через регистр BSRR?
[uquote="khch",url="/forum/viewtopic.php?p=3435176#p3435176"]Ведь 1 - это десятичное число. Мы его сдвигаем влево и что? Получаем двоичное??!![/uquote]
там, глубоко внутри, нет никаких десятичных и прочих чисел. Только двоичные. Запись в иных системах счисления - исключительно для людей.
конкретно этот пример - число 1d, оно же 00000001b сдвигаем на 7 влево, получаем 10000000b
ничего не мешает двигать любые числа, не только степени двойки. Хотим, например, такое: 5d << 3d , 00000101b << 3d = 00101000b
[uquote="khch",url="/forum/viewtopic.php?p=3435176#p3435176"]То есть есть это тоже самое, как написать[/uquote]
да, но в более читаемом виде - сразу видно, что устанавливаем седьмой бит.
[uquote="khch",url="/forum/viewtopic.php?p=3435176#p3435176"]И это действие для STM производится через регистр BSRR?[/uquote]
ага
Десятичное , двоичное, шестнадцатеричное - это лишь форма записи числа в читаемом для человека виде.
Процессору глубоко начхать на это , он видит лишь регистр с его битами.
1<<7 а эта запись так же лишь удобная для восприятия человеком. В итоге она преобразуется препроцессором компилятора в константу .
Далее BSRR и BRR регистры только для записи и запись в виде
[uquote="Sergi",url="/forum/viewtopic.php?p=3435042#p3435042"]Есть автомобиль(любой)[/uquote]чтож всем так автомобильные аналогии нравятся
[uquote="Sergi",url="/forum/viewtopic.php?p=3435042#p3435042"]в нем есть педали,руль,переключатель скорости и проч. Получил права,сел и поехал.[/uquote]и плюс набор инструментов, чтобы в случае, когда что-то не нравится, залезть внутрь любого узла и подкрутить там чего надо или совсем переделать.
[uquote="Sergi",url="/forum/viewtopic.php?p=3435042#p3435042"]И вот чтобы понять что под капотом и нужен RM и DS[/uquote]понимать в общих чертах, чего там под капотом, и при надобности уметь найти подробности - безусловно, нужно. Но не настолько этим увлекаться, чтобы каждый раз, когда надо съездить за пивом, выпиливать себе двигатель из болванки.
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3435209#p3435209"]Но не настолько этим увлекаться, чтобы каждый раз, когда надо съездить за пивом, выпиливать себе двигатель из болванки.[/uquote]
С этим можно было согласиться, если бы г.либы охватывали всю мощь периферии.
Однако на практике реализуется лишь бредовидение индусов, напрочь х**рещее всю прелесть аппаратных реализаций и превращающее все и вся в злобное софтодрочерство.
ОХренеть, сука!!!!!!!!!
Я после 2 часового геммороя осилил мигание на CMSIS!!! Ну почти
Задержка, все равно, халовская...
А как сделать задержку на CMSIS?
HAL_Delay(1000);
GPIOC->BSRR |=1<<29;
HAL_Delay(1000);
GPIOC->BSRR |=1<<13;
[uquote="dosikus",url="/forum/viewtopic.php?p=3435215#p3435215"]С этим можно было согласиться, если бы г.либы охватывали всю мощь периферии[/uquote]дык
arkhnchul писал(а):плюс набор инструментов, чтобы в случае, когда что-то не нравится, залезть внутрь любого узла и подкрутить там чего надо или совсем переделать
эти "г.либы" тащемта не высечены на века в граните, а представлены набором исходников. Нужна в какой-то редкий момент "вся мощь периферии", не охваченная библиотечными функциями - никто не мешает запустить внутрь кровавые ручищи и переписать чего надо.
Добавлено after 2 minutes 30 seconds:
[uquote="khch",url="/forum/viewtopic.php?p=3435222#p3435222"]Задержка, все равно, халовская...
А как сделать задержку на CMSIS?[/uquote]
что вам мешает посмотреть, как устроена HAL_Delay()?
вообще есть много способов сделать задержку, далеко не только та реализация.