C中的时序问题

时间:2010-12-06 08:49:23

标签: c logic constraints real-time

我对c没有很好的经验...我只是想学习一些在c中实现的实际场景......例如我如何在C代码中实现以下内容......

当x = 1时,

y = 1 当x!= 1时,y = 0

主要的是......

输出 y 在输入 x 更改时发生更改,并且如果输入中的任何更改1,则必须保持 1秒的状态它必须保持其先前的状态。

请任何人帮我这个...并且请帮助我如何批评这种类型的逻辑..请

2 个答案:

答案 0 :(得分:2)

如果x没有变化,你可以负担得起等待,那么

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

如果您在更改时有任何事件或中断,可以在不繁忙等待的情况下完成。

答案 1 :(得分:0)

一旦弄清楚如何处理IO和时序,这些就是相关测试的可能性:

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

或:

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

或:

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