PICでUART通信を行う際の注意点。引っ掛かったのでメモ書き。
まず、CCSというコンパイラを利用したコード
//CCS版 #use delay(CLOCK = 20000000) // Clock Frequency : 20MHz #use rs232(BAUD = 9600, XMIT = pin_c6, RCV = pic_n7, PARITY = N, BITS = 8) // assign USART Tx:RP8 Rx:RP9
これをMPLABというコンパイラに移植しようとすると……
//MPLAB版 #include "usart.h" TRISC = 0x80; OpenUSART (USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH 129)
といった感じになります。
このなかで、USART_BRGH_HIGHというものが少々特殊で、
という計算式で導出したものを用います。