oleg110592 писал(а):В SPL header от производителя микроконтроллеров, выбор очевиден.
Позволю себе не согласится. Работать с битовыми структурами заголовочных файлов от IAR удобнее и нагляднее.
Например, установка бита в регистре таймера с иаровскими заголовками будет выглядеть так:
используя заголовочный файл от производителя, писать придется так:
Еще хуже ситуация становится, если надо менять сразу несколько битов в середине регистра.
Иаровские заголовки:
стм-овские:
Код: Выделить всё
TIM1->SMCR &= ~TIM1_SMCR_TS;
TIM1->SMCR |= (5 << 4);
Причем, зная название определения, в случае иаровских заголовков я просто пишу туда значение. С стмовсими заголовками нужно смотреть по даташиту смещение, чтобы попасть значением туда.
В общем, имеющий глаза увидит, какой выбор очевиден. Для всех остальных ситуация не столь благостная. Руководствоваться штампами, что раз от производителя, значит лучшее, весьма неоднозначная практика.
2
axill: пользоваться записями вида TIM4_CR1_bit.OPM=1 немного коряво. Подключите заголовочный файл iostm8s103f3.h, где все битовые структуры имеют простые имена и ваша запись станет выглядеть, как TIM4_CR1_OPM = 1; Иаровские дифайны имеют четкое соответствие даташиту и если смекнуть, как они образуются, то часто можно и не лазить в заголовочный файл, а прямо из даташита на камень "угадывать" нужное опеределение для использования в коде.