-
- ))) Смотря с какими ))) если EXTI то у меня так Aleksey_75(2223 знак., 09.09.2020 20:29 - 21:09)
- Таймер какой-нибудь простенький. - teap0t(09.09.2020 20:34)
- Ну таймер всетаки более узко заточен , но и для него думаю можно накропать нечто подобное ) Aleksey_75(1255 знак., 09.09.2020 20:39)
- Таймер какой-нибудь простенький. - teap0t(09.09.2020 20:34)
- Всю жизнь "работаю с выводами" напрямую через регистры без
каких-либо обёрток, неудобств почему-то не испытываю. Что в
указанном примере должно вдохновить на более лучший порядок
организации обработчиков прерываний? - SciFi(09.09.2020 20:34)
- это хорошо для AVR где адекватные порты, c STM32 сложнее там
отдельно тянется номер пина и порта, поэтому оформил именно так!
кстати в set_pin_active(LED1); Aleksey_75(650 знак., 09.09.2020 20:44)
- В цикле "for" перед переменной цикла стоит указатель типа (если я
правильно понял) uint8_t, а зачем? А не проще инициализировать не
циклом, а записью констант в регистры? - teap0t(09.09.2020 20:54)
- uint8_t i = объявление переменной совмещено с ее первым использованием - VLLV(09.09.2020 21:01)
- не очень понял о чем речь, i счетчик цикла , а по сути указатель на
элемент массива с настройками конкретного пина! - Aleksey_75(09.09.2020 20:59)
- Зачем ограничивается размер переменной? Без модификатора, как я
понимаю, она будет 32- (или 16-) разрядной, уместится в регистре и
будет себе увеличиваться, пока дело до END_PIN_ARR не дойдёт. А в
чём смысл сокращать счётчик до байта? - teap0t(09.09.2020 21:20 - 21:27)
- а нафиг ? лютомноголапых мк у меня нет, да и править от проекта к проекту bsp_gpio.c нет желания, не для того она писалась Aleksey_75(91 знак., 09.09.2020 21:31)
- хм, ну эт привычка с 8битников, каждый байт на счету, можно былоб
поставить uint32_t но uint8_t за глаза , не использую мк более 200
выводов - Aleksey_75(09.09.2020 21:24)
- Я в таких местах пишу uint_fast8_t. Хорошо для архитектуры любой
разрядности. Да и вообще все локальные переменные стараюсь
объявлять через xxx_fastX_t. Это ИМХО дает некоторую гарантию
самого оптимального кода для архитектуры любой разрядности. Но есть
нюансы, которые надо держать в уме. - il-2(10.09.2020 08:26)
- Самый выпуклый нюанс -- имя uint_fast8_t длинное и уродливое. - SciFi(10.09.2020 09:13)
- typedef uint_fast8_t ufast8_t; Костыль конечно, но что делать. :-) - il-2(10.09.2020 12:14)
- Самый выпуклый нюанс -- имя uint_fast8_t длинное и уродливое. - SciFi(10.09.2020 09:13)
- Я в таких местах пишу uint_fast8_t. Хорошо для архитектуры любой
разрядности. Да и вообще все локальные переменные стараюсь
объявлять через xxx_fastX_t. Это ИМХО дает некоторую гарантию
самого оптимального кода для архитектуры любой разрядности. Но есть
нюансы, которые надо держать в уме. - il-2(10.09.2020 08:26)
- Зачем ограничивается размер переменной? Без модификатора, как я
понимаю, она будет 32- (или 16-) разрядной, уместится в регистре и
будет себе увеличиваться, пока дело до END_PIN_ARR не дойдёт. А в
чём смысл сокращать счётчик до байта? - teap0t(09.09.2020 21:20 - 21:27)
- В цикле "for" перед переменной цикла стоит указатель типа (если я
правильно понял) uint8_t, а зачем? А не проще инициализировать не
циклом, а записью констант в регистры? - teap0t(09.09.2020 20:54)
- Работаю с обертками для выводов, но как это может вдохновить на
обертки для прерываний? :) - VLLV(09.09.2020 20:37)
- Я вообще в самом начале пути. Речь не об обёртках, а о примерах работы. - teap0t(09.09.2020 20:40)
- Это, наверно, индивидуальность восприятия. Я тоже всегда прямо
работал, но на ассемблере. - teap0t(09.09.2020 20:36)
- После работы на ассемблере лучше в совершенстве освоить обычный С,
а уже потом заниматься извращениями. К этому лишнему слою
абстракций нужно привыкать, ошибки в нем ищутся тяжело. - VLLV(09.09.2020 21:13)
- я боюсь что касается армов, все родные либы это лютая абстракция,
причем не всегда очевидная.. - Aleksey_75(09.09.2020 21:17)
- Я бы так не утверждал. - VLLV(09.09.2020 21:40)
- я боюсь что касается армов, все родные либы это лютая абстракция,
причем не всегда очевидная.. - Aleksey_75(09.09.2020 21:17)
- После работы на ассемблере лучше в совершенстве освоить обычный С,
а уже потом заниматься извращениями. К этому лишнему слою
абстракций нужно привыкать, ошибки в нем ищутся тяжело. - VLLV(09.09.2020 21:13)
- это хорошо для AVR где адекватные порты, c STM32 сложнее там
отдельно тянется номер пина и порта, поэтому оформил именно так!
кстати в set_pin_active(LED1); Aleksey_75(650 знак., 09.09.2020 20:44)
- ))) Смотря с какими ))) если EXTI то у меня так Aleksey_75(2223 знак., 09.09.2020 20:29 - 21:09)