В ODR не запишешь 9 или 10 бит атомарно, в этом разница. Любое дерганье пином с того же порта в прерывании или другой задаче будет приводить к проблемам, причем труднообнаруживаемым, т.к. проявляться они могут очень не часто.
STM32 новичку в ARM что к чему
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903872#p3903872"]Какие нахрен маски о чем вообще речь зачем это? если напрямую записывать данные можно в ODR[/uquote]
В ODR не запишешь 9 или 10 бит атомарно, в этом разница. Любое дерганье пином с того же порта в прерывании или другой задаче будет приводить к проблемам, причем труднообнаруживаемым, т.к. проявляться они могут очень не часто.
В ODR не запишешь 9 или 10 бит атомарно, в этом разница. Любое дерганье пином с того же порта в прерывании или другой задаче будет приводить к проблемам, причем труднообнаруживаемым, т.к. проявляться они могут очень не часто.
Последний раз редактировалось Reflector Чт окт 08, 2020 22:37:37, всего редактировалось 1 раз.
- Реклама
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Я угораю
С++ программист объясняет матёрому Си-ретрограду как писать в регистры. Так кто не понимает то алгоритмов и железа?
Да это бред уже выдуманный.
Последний раз редактировалось Oxford Пт окт 09, 2020 02:10:54, всего редактировалось 8 раз.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 6452
- Зарегистрирован: Пт сен 13, 2013 13:11:31
[uquote="VladislavS",url="/forum/viewtopic.php?p=3903870#p3903870"]Использовать BRR для записи данных в порт это твоя придурь.[/uquote]
Закусывай. Я BRR вообще не использовал никогда и не собирался.
[uquote="VladislavS",url="/forum/viewtopic.php?p=3903876#p3903876"]С++ программист объясняет[/uquote]
Если ваши плюсы так хороши, какого их никто не использует? Где библиотеки под STM32 на плюсах от производителя?
Закусывай. Я BRR вообще не использовал никогда и не собирался.
[uquote="VladislavS",url="/forum/viewtopic.php?p=3903876#p3903876"]С++ программист объясняет[/uquote]
Если ваши плюсы так хороши, какого их никто не использует? Где библиотеки под STM32 на плюсах от производителя?
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903878#p3903878"]Обьясняю почему с прерываниями не нужен атомарный доступ, а дело в том что программа однопоточная[/uquote]
Допустим PB очищен и в основной программе есть строка:
В момент когда в регистр было прочитано значение ODR вызывается прерывание устанавливающее младший бит PB в 1, но после возврата из прерывания в порт будет выведено старое значение, в котором младшая половина порта нулевая...
Допустим PB очищен и в основной программе есть строка:
Код: Выделить всё
GPIOB->ODR |= (data << 8);- Реклама
Reflector зачем эти фантазии?
Последний раз редактировалось Oxford Пт окт 09, 2020 02:11:11, всего редактировалось 7 раз.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 6452
- Зарегистрирован: Пт сен 13, 2013 13:11:31
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Я BRR вообще не использовал никогда и не собирался.[/uquote]Но зачем-то просишь, нет требуешь, сделать это мне там где в этом нет необходомости. Спасибо хоть в UART с помощьюю BRR не требуешь писать.
[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Если ваши плюсы так хороши, какого их никто не использует?[/uquote]Так уж и никто? Точно всех опросили?
[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Где библиотеки под STM32 на плюсах от производителя?[/uquote]Они на Си то нормально сделать не могут - вон какой вой пользователей стоит в том числе и от вас.
[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Если ваши плюсы так хороши, какого их никто не использует?[/uquote]Так уж и никто? Точно всех опросили?
[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Где библиотеки под STM32 на плюсах от производителя?[/uquote]Они на Си то нормально сделать не могут - вон какой вой пользователей стоит в том числе и от вас.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903885#p3903885"]если в прерывании есть код дергающий PB1 это идиотизм и нужна синхронизация[/uquote]
А что не так? Хочу в прерывании светодиод тоглю, хочу семисегментники обновляю, а там и полтора десятка пинов может быть, но с кучей приоритетов прерываний могу себе позволить. Про RTOS вообще молчу, многие просто создают кучу задач тоглящих пины с последующей задержкой и потом смотрят ЛА насколько все равномерно работает, в таком случае идиотизмом будет добавление синхронизации для доступа к порту учитывая, что производитель специально добавил регистр для атомарного доступа.
А что не так? Хочу в прерывании светодиод тоглю, хочу семисегментники обновляю, а там и полтора десятка пинов может быть, но с кучей приоритетов прерываний могу себе позволить. Про RTOS вообще молчу, многие просто создают кучу задач тоглящих пины с последующей задержкой и потом смотрят ЛА насколько все равномерно работает, в таком случае идиотизмом будет добавление синхронизации для доступа к порту учитывая, что производитель специально добавил регистр для атомарного доступа.
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Reflector",url="/forum/viewtopic.php?p=3903891#p3903891"]А что не так?[/uquote]Алгоритмы сначала изучи! А то ишь чё удумал - светодиоды без теории тоглит. 
[uquote="Reflector",url="/forum/viewtopic.php?p=3903891#p3903891"][uquote="Oxford",url="/forum/viewtopic.php?p=3903885#p3903885"]если в прерывании есть код дергающий PB1 это идиотизм и нужна синхронизация[/uquote]
А что не так? Хочу в прерывании светодиод тоглю, хочу семисегментники обновляю, а там и полтора десятка пинов может быть, но с кучей приоритетов прерываний могу себе позволить. Про RTOS вообще молчу, многие просто создают кучу задач тоглящих пины с последующей задержкой и потом смотрят ЛА насколько все равномерно работает, в таком случае идиотизмом будет добавление синхронизации для доступа к порту учитывая, что производитель специально добавил регистр для атомарного доступа.[/uquote]
Ну ты говорил про PB1 я и говорю зачем его дергать в прерывании?
А что не так? Хочу в прерывании светодиод тоглю, хочу семисегментники обновляю, а там и полтора десятка пинов может быть, но с кучей приоритетов прерываний могу себе позволить. Про RTOS вообще молчу, многие просто создают кучу задач тоглящих пины с последующей задержкой и потом смотрят ЛА насколько все равномерно работает, в таком случае идиотизмом будет добавление синхронизации для доступа к порту учитывая, что производитель специально добавил регистр для атомарного доступа.[/uquote]
Ну ты говорил про PB1 я и говорю зачем его дергать в прерывании?
Последний раз редактировалось Oxford Пт окт 09, 2020 02:11:32, всего редактировалось 5 раз.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 6452
- Зарегистрирован: Пт сен 13, 2013 13:11:31
[uquote="VladislavS",url="/forum/viewtopic.php?p=3903889#p3903889"]Но зачем-то просишь, нет требуешь, сделать это мне там где в этом нет необходомости.[/uquote]
Ну что тебя носом натыкать, как сначала ты приплел BRR ни к селу, а потом театрально заламывая руки начал сочинять, что это у меня две мысли не пересекаются в контексте этого самого BRR? Обосрался, так обтекай молча. Чего голосишь?
Ну что тебя носом натыкать, как сначала ты приплел BRR ни к селу, а потом театрально заламывая руки начал сочинять, что это у меня две мысли не пересекаются в контексте этого самого BRR? Обосрался, так обтекай молча. Чего голосишь?
Т.е. мысль о том, что на плюсах выйдет еще хуже, она, как бы подразумевается сама собой? Ок, принято.[uquote="a5021",url="/forum/viewtopic.php?p=3903880#p3903880"]Где библиотеки под STM32 на плюсах от производителя?[/uquote]Они на Си то нормально сделать не могут - вон какой вой пользователей стоит в том числе и от вас.
Последний раз редактировалось a5021 Чт окт 08, 2020 23:54:07, всего редактировалось 1 раз.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903899#p3903899"][/uquote]
А теперь еще раз посмотри какие пины используются только для дисплея:
Обнулив младшую половину PB ты не только записал 0 в WR, но также сбросил дисплей, ведь один из пинов - это RESET. А еще RD... Три оставшихся пина на PB вообще неизвестно как используются, но ничего хорошего от их очистки тоже ждать не стоит.
Код: Выделить всё
GPIOB->ODR = data & 0xFF00;
GPIOB->BSRR = GPIO_BSRR_BS_1;
GPIOB->ODR = data << 8;
GPIOB->BSRR = GPIO_BSRR_BS_1;
А теперь еще раз посмотри какие пины используются только для дисплея:
Код: Выделить всё
using lcd = Lcd<RM68140, LcdOrient::LandscapeRev, PB7, GpioB<0xFF00>, PB2, PB0, PB1, PB6, 0, 4, 0>;Я епу какие у тебя пины. Добавь если надо.
Последний раз редактировалось Oxford Пт окт 09, 2020 02:13:23, всего редактировалось 2 раза.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903903#p3903903"]Я епу какие у тебя пины ты сказал данные верхние и PB1 я сделал так и С++ тут не нужен.[/uquote]
Моя либа работает с любыми пинами, в любом порядке и с любых портов, все остальные пины трогать нельзя ни при каких обстоятельствах. Поскольку С++ ничуть не лучше С, то сделай так же.
Моя либа работает с любыми пинами, в любом порядке и с любых портов, все остальные пины трогать нельзя ни при каких обстоятельствах. Поскольку С++ ничуть не лучше С, то сделай так же.
Насрать мне на твою либу, это не заслуга С++
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3903903#p3903903"][/uquote]
А если на PB3/4/5 светодиоды висят их тоже сюда впишешь?
Код: Выделить всё
GPIOB->ODR = (data & 0xFF00) | RESET | RD;А если на PB3/4/5 светодиоды висят их тоже сюда впишешь?
Да я впринципе такое гавно не программирую
Последний раз редактировалось Oxford Пт окт 09, 2020 02:14:18, всего редактировалось 2 раза.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Oxford",url="/forum/viewtopic.php?p=3903912#p3903912"]Насрать мне на твою либу, это не заслуга С++[/uquote]Это в первую очередь высокая квалификация программиста и во вторую С++, так как на Си подобную либу не сделать в принципе.
[uquote="Oxford",url="/forum/viewtopic.php?p=3903915#p3903915"]ну ты сборку делаешь для BSRR.[/uquote]Да в том то суть, что не делает он этого. Это делает компилятор.
[uquote="Oxford",url="/forum/viewtopic.php?p=3903915#p3903915"]Вопрос в том что C++ никакого преимущества тут не несет.[/uquote]Именно в этом и преимущество. Тебе влом делать такие оптимизации вручную и ты какие-то решения в лоб применяешь. А компилятор делает их всегда.
[uquote="Oxford",url="/forum/viewtopic.php?p=3903915#p3903915"]ну ты сборку делаешь для BSRR.[/uquote]Да в том то суть, что не делает он этого. Это делает компилятор.
[uquote="Oxford",url="/forum/viewtopic.php?p=3903915#p3903915"]Вопрос в том что C++ никакого преимущества тут не несет.[/uquote]Именно в этом и преимущество. Тебе влом делать такие оптимизации вручную и ты какие-то решения в лоб применяешь. А компилятор делает их всегда.
Методы показывай.
VladislavS такой бред капец. на си не сделать.
VladislavS такой бред капец. на си не сделать.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


