メモリチップへのカンマ区切りのデータ書き込みについて

お世話になっております。

使用しているMCU:RX113

RSPIで接続された富士通製FRAM(MB85RS512T)へのデータ書き込みについて、ご教示お願いします。

※ バイト単位でのデータの読み書き、ステータスレジスタの読み込み等はできております。

● 実現したいこと。

カンマで区切られた幾つかのデータをテキストで読める形で書き込むこと。

上記の理由・目的:メモリに蓄積されたデータを外部に送信して、読めること。

● 考えてみたコード (抜粋)

unsigned char Memout[] = "";
unsigned char *Memdata[9];

        Memdata[0] = "20170428 11:12" ","; // 日付・時刻       14Byte
        Memdata[1] = " 12" ",";        // 冷凍機 作動電流値     3Byte
        Memdata[2] = "2.7" ",";        // 扉ヒーター 作動電流値   3Byte
        Memdata[3] = "0.8" ",";        // ドレンヒーター 作動電流値 3Byte
        Memdata[4] = "-17.3" ",";       // 庫内温度          5Byte
        Memdata[5] = "12345" ",";       // 電源ON連続時間     5Byte
        Memdata[6] = "11:12" ",";       // 温度異常時時刻      5Byte
        Memdata[7] = " 85.7" ",";        // 温度異常時の温度     5Byte
        Memdata[8] = "5" "\r\n";        // 扉開閉回数        1Byte

/*  データ送信関数への引渡し */

  data_send(Memdata); // メモリへの書き込みデータ送信

 

※ 上に書きましたコードの初期値は、記憶領域を計算するための覚え書き程度のものです。

● 確認したいこと

  0番目から8番目までのデータは、それぞれ決まった長さ(上記のコードのバイト数)で揃えたいが、この場合

   sprintf(Memdata[n], "%4d,", data );   //  <-  第2項の最後に、カンマが入っています。

 

   という記述で問題はおきないものかどうか。? ということです。

 

お手数をおかけして大変恐縮ですが、何卒よろしくおねがいします。

 

Parents
  • ポインタの配列の必要性が有るんですか。
    文字列の最大長が16バイトとすれば、16x9バイトの配列を作ったらどうですか。
    文字列は長さが違うので、最大長に合わせると使わない領域が出ます。
    そのために文字列の先頭アドレスを入れたポインタの配列を作ります。
    文字列の長さが一定でコンマの位置も変らないなら、他に工夫できると思います。
Reply
  • ポインタの配列の必要性が有るんですか。
    文字列の最大長が16バイトとすれば、16x9バイトの配列を作ったらどうですか。
    文字列は長さが違うので、最大長に合わせると使わない領域が出ます。
    そのために文字列の先頭アドレスを入れたポインタの配列を作ります。
    文字列の長さが一定でコンマの位置も変らないなら、他に工夫できると思います。
Children
No Data