G
Guest
Guest
こんにちはすべて、
私は再午前は
、 離散したシグマデルタADCは
、 オペアンプを使用してアンプとカウンタ
、 および8051マイクロコントローラを使用して重さのスケールのファームウェアのコーディング。
引っ越しを使用して平均フィルタの安定のために。もし私の平均のサンプル数を増やす今の問題は、最終的な数はかなりの量と
、 その逆に低減します。私は別のウィンドウのサイズと同様の重量の値を取得しないでください!
しかし
、 私はこの..起こらないすべきだと思うどのようなフィルタウィンドウの大きさに関係なく、読み取り指定された重量と同じ値を中心に変動する必要があります。
すべてのソ¥リューションは??
ここに私の更新の重量のISRは平均して行われている
コード:AVG_FILTER_WINDOW_SIZE 8定義#(無効)2割り込みnew_weight_interrupt 0を使用して無効
(
EX1に= 0; / /無効にするINT1の割り込み
ET1 = 1; / /無効にするTMR0割り込み
よって取り残さ= 0; / /停止タイマ0val_393 = P1の;
val_393&= 0x0F;
CLR_393 = 1;new_weight =((長い)オーバーフロー)""16;
new_weight | =((長い)TH0)""8;
new_weight | =(()TL0)長い;
new_weight""= 4;
new_weight | =(長い)val_393;/ /平均化に行わこちら
avg_weight = new_weight;
avg_weight / = AVG_FILTER_WINDOW_SIZE;オーバーフロー= 0;
TH0 = 0;
TL0 = 0;
よって取り残さ= 1;
CLR_393 = 0;EX1に= 1;
ET1 = 1;
)
私は再午前は
、 離散したシグマデルタADCは
、 オペアンプを使用してアンプとカウンタ
、 および8051マイクロコントローラを使用して重さのスケールのファームウェアのコーディング。
引っ越しを使用して平均フィルタの安定のために。もし私の平均のサンプル数を増やす今の問題は、最終的な数はかなりの量と
、 その逆に低減します。私は別のウィンドウのサイズと同様の重量の値を取得しないでください!
しかし
、 私はこの..起こらないすべきだと思うどのようなフィルタウィンドウの大きさに関係なく、読み取り指定された重量と同じ値を中心に変動する必要があります。
すべてのソ¥リューションは??
ここに私の更新の重量のISRは平均して行われている
コード:AVG_FILTER_WINDOW_SIZE 8定義#(無効)2割り込みnew_weight_interrupt 0を使用して無効
(
EX1に= 0; / /無効にするINT1の割り込み
ET1 = 1; / /無効にするTMR0割り込み
よって取り残さ= 0; / /停止タイマ0val_393 = P1の;
val_393&= 0x0F;
CLR_393 = 1;new_weight =((長い)オーバーフロー)""16;
new_weight | =((長い)TH0)""8;
new_weight | =(()TL0)長い;
new_weight""= 4;
new_weight | =(長い)val_393;/ /平均化に行わこちら
avg_weight = new_weight;
avg_weight / = AVG_FILTER_WINDOW_SIZE;オーバーフロー= 0;
TH0 = 0;
TL0 = 0;
よって取り残さ= 1;
CLR_393 = 0;EX1に= 1;
ET1 = 1;
)