Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

PICにおけるCCSとMPLABの相違点@USART編

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というものが少々特殊で、
 Y = ({\frac{freaq}{BoudRate}}\frac{1}{16}) - 1
という計算式で導出したものを用います。

参照元