2016-04-13 10 views
0

ヘッダをバイナリファイルとして保存でき、誰かが* hファイルをバイナリ値として表現しているときにコンパイラに違いがないことが分かりました。生の音をバイナリヘッダに変換する

マイクロコントローラでさらに読み込むために生のサウンドデータをテーブルに保存する必要があります。私はそれを読んでからテキストとして保存する方法を知っていますが、それは私のために重いです、私は小さなフラッシュでこのデータを保持します。

誰も私に「バイナリ」ヘッダーとして保存する方法を教えてもらえますか?どのように正確に見えるかわからないので、ヒントや説明が非常に役立つかもしれません。

に関して私が思う

ラファウKopczyński

+1

ヘッダーをバイナリファイルとして保存する方法と場所はどこにありましたか?ヘッダーファイルのコンテキストで「バイナリ」ファイルとはどういう意味ですか? –

+0

バイナリデータをテキスト表現に変換し、有効なCコードとしてヘッダに格納する必要があります。このような形式の例を得るには、[XPM形式](https://en.wikipedia.org/wiki/X_PixMap)を見てください。(xpmは写真ですが) – user3159253

答えて

0

、あなたのバイナリデータをコンパイル時に生成配列を作成する必要があります。 私はバイナリデータを読み込んで、int32_tというテキストをカンマで区切って書いた簡単なヘルププログラムを書くことをお勧めします。次に、 int32_t data[] = { /*copy-paste here*/ }のようなものを使用して、すべての出力を元のプログラムにコピーできます。おそらくそれを行う良い方法がありますが、これはうまく動作します。あなたが好きなものにreinterpret_castこの配列をコピーすることができます。

P.S.バイナリヘッダーはありません。 (そして意外なことに)コンパイラによって許可されている場合、これは標準に反するものです。

+0

サウンドはまれに 'int32_t'です。共通ビット深度は 'int16_t'です。例えば。 CDの品質は16ビット、44.1 kHzです。したがって、 'int16_t sound [] = {0,3,6,9、...}'宣言を生成します。 'reinterpret_cast' – MSalters

+0

Int32の必要はありません。パディングの問題がないことを確認するだけです。 –

関連する問題