この行は期待どおりに機能していません:
uartPushPos = (uartPushPos + 1) % UART_TX_BUFF_LENGTH;
ただし、これは理論的には同じことですが、機能します。
//if (uartPushPos == UART_TX_BUFF_LENGTH - 1){
if (uartPushPos >= UART_TX_BUFF_LENGTH - 1){
uartPushPos = 0;
} else {
uartPushPos++;
}
UartPopPosはchar型であり、UART_TX_BUFF_LENGTHは16に設定されたプリプロセッサ変数です。
2番目のコードセグメントが機能するのに、最初のコードセグメントは機能しないのはなぜですか?
大きな違いがある場合は、PICマイクロコントローラー16fにSourceBoostBoostCコンパイラーを使用しています。
ありがとう