2010-12-06 20 views
2

私はCで良い経験を持っていません...私はちょうどCで実装される実用的なシナリオのいくつかを学びたいと思います....例えば、どのように私はCコードで次のように実装できますか?Cのタイミング問題

Y = 1、X = 1
Y = 0、X!= 1

主なものは、ということである....

出力Y変化するときの入力X変更およびの状態を維持しなければならない1秒 1秒以内に入力に変化があった場合、前の状態を維持する必要があります。

いずれかが親切にどのようにロジックのこのタイプのapprochに私を助けてthis..andに私を助けてください。..してください

+1

これはVHDL/Verilogの問題によく似ています。 –

+0

@Matt:私は一時的な論理を言っていますが、それは私の理論の背景を示しています。 –

+1

Woods(1989)[時間的論理ケーススタディ](http://www.sei.cmu.edu/reports/89tr024.pdf)は、これらの種類の制約をモデル化するために時間的論理がどのように使用されるかを、義務的エレベータ実行例。 –

答えて

0

あなたはIOとタイミングを処理する方法を見つけ出すたら、これらはの可能性あり関連試験:

y = (x == 1 ? 1 : 0); 

か:

if (x == 1) 
    y = 1; 
else 
    y = 0; 

か:

y = 0; 
if (x == 1) 
    y = 1; 
+0

これはqnのIO制約をまったく扱わない。 –

2

xは、あなたが任意のイベントを持っているか、それが変わったの時に中断した場合、それは忙しい待たずに行うことができます

その後、
volatile int x; 
int old_x, tmp = x; 
while (1){ 
    y = ((old_x = tmp) == 1); 
    Sleep(1000); 
    while(old_x == (tmp = x)); 
} 

を変更していないときに、あなたがビジーウェイトに余裕があれば。

+0

+1、正しいようです。 –

+0

qnerはまた、これらの種類のコードの一般的な考えの後でもありました。 –

+0

@Charles:VHDLの遅延に関して、Cができることはほとんどすべてです。一般的なケースは厳しい必要があります.. – ruslik

関連する問題