●●●くみこの組み込み相談室1.0●●●
■ このスレッドは過去ログ倉庫に格納されています
0618デフォルトの名無しさん
2009/01/27(火) 03:36:29リングバッファ知らんの?
既に>>549でも指摘したが、バッファサイズを2の累乗にして
インデックスをそのバッファサイズ-1でマスクすると、
値はバッファの範囲(128なら0-127)を取る。
write : buf[pos++ & (BUFSIZE-1)] = data;
read : data = buf[pos++ & (BUFSIZE-1)];
posはBUFSIZEの範囲を表現できる型にしておく。
例えばBUFSIZEが1024ならposは16bit変数として宣言。
これ、リングバッファ作る時の常識ね。
■ このスレッドは過去ログ倉庫に格納されています