みんな。
PIC18F452 マイクロコントローラーを使用しています。UART でデータを受信し、追加の同期ワードを付けてフレーム化し、送信します。同期ワードを順番に送信する際に問題が発生します。私が欲しいのは、データと一緒に EA 09 C3 と言う言葉を送ることです。これで、次のコードが MikroC で記述されました。
int j=0;
SPBRG = 129;
TXSTA = 0b00100110;
RCSTA = 0b10010000;
while(1)
{
if(j == 0)
{
TXREG = 0xEA;
}
else if(j == 1)
{
TXREG = 0x09;
}
else if(j == 2)
{
TXREG = 0xC3;
}
else
{
TXREG = RCREG;
}
while(!TRMT); // wait for whole data frame to be ready for transmission
if(j == 100)
j = 0; // reset j after 100 bytes
else
j++;
}
ここで何が起こるかというと、同期ワードが送信されますが、順序が狂っており、バイトの重複も発生することがあります。私が望むのは、j は 1 バイトが送信された後にのみインクリメントする必要があるということです。ここでは、j は送信とは無関係にインクリメントすると思います。
期待して感謝します。
よろしく、ハッサン