Мені, зокрема, не сподобалося, що конфігурація всієї периферії відбувалася шляхом запису деяких неоднозначних чисел в конфігураційні регістри. Але шансу розвинути дискусію не дали. Тому тим, кому цікаво, як це відносно просто і красиво зробити в MPLAB з компілятором C30, наприклад, прошу під кат.
Отже, я програмую DSPIC33. Зокрема роблю на них управління двигунами постійного струму.
Взагалі, 33-піки не сильно відрізняються від 30 серії. Правда, в кращу сторону. Вони менше гріються на максимальній частоті, у них можна переконфігурувати Піни периферії. Однак деякий геморой додається. Але все це можна вирішити.
Не знаю як інші, але я вважаю хорошим тоном ставити конфігурацію процесора прямо в коді, бо тоді відразу дивлячись на исходник стає зрозуміло як і що працює. наприклад:
Про те, що дані конкретні макроси значать можна почитати в документації на процесор (правда зараз з ходу не знайшов, якщо хто підкаже де це лежить - буду вдячний).
Function Prototype
void OpenUART1 (unsigned int config1,
unsigned int config2, unsigned int ubrg);
void OpenUART2 (unsigned int config1,
unsigned int config2, unsigned int ubrg);
Description
This function configures the UART module.
Arguments
config1 - This contains the parameters to be configured in the UxMODE register as defined below.
UART Idle mode operation
UART communication with alternate TX / RX pins *
* UART communication with alternate pins is available only for certain devices and the suitable data sheet should be referred to.
UART Wake-up on Start
UART Loopback mode enable / disable
Input to Capture module