STM32F051K6U7 ma USART2 ?
Miroslav Mraz
mraz na seznam.cz
Neděle Březen 15 19:06:50 CET 2015
Takhle jednoduché to zase není. Původně jsem taky předpokládal, že
použít v bitovém poli enum jako další vrstvu abstrakce není špatný
nápad, ale bohužel není tomu tak. Problém je v tom, že překladač obvykle
vezme enum jako jeden byte, což nevadí pokud se hrabeme normálně někde v
RAM, ale pokud lezeme do registru je potřeba přistupovat tam s
definovanou šířkou slova. Dá se sice nastavit aby se enum interpretoval
jako celé slovo, ale ani to není to pravé. Způsobí to problém s
kompatibilitou knihoven a navíc některé registry jsou 16.bitové a i to
je třeba zohlednit. Funguje to bez problémů, pokud slepíme 16.bitový
registr z fragmentů uint16_t, 32.bitový z uint32_t atd. To by mělo být i
přenositelné.
Mrazík
Dne 15.3.2015 v 18:30 Jaroslav Buchta napsal(a):
> Njn, to by nebylo spatne, nakonec by stacilo misto #define pouzit enum a
> chybu by to vyhodilo taky. Bitova pole by asi mohla delat problem v
> kompatibilite ruznych prekladacu?
>
Další informace o konferenci Hw-list