C语言的时序问题

发布于 2024-10-06 05:11:08 字数 275 浏览 4 评论 0原文

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

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

最主要的是......

当输入 x 改变时输出 y 改变并且必须保持其状态 1 秒 如果输入在 1 秒内发生任何变化,它必须保持之前的状态。

请任何人帮助我解决这个问题..请帮助我如何处理这种类型的逻辑..请

I dont have good experience on c... i just want to learn some of the practical scenarios to be implemented in c.... for example how can i implement the following in C code...

y=1 when x=1
y=0 when x!=1

the main thing is that....

output y changes when input x changes and has to maintain its state for 1 second if there is any change in the input within 1 sec it has to maintain its previous state.

please any one help me on this..and kindly help me how to approch for this type of logics.. please

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最美的太阳 2024-10-13 05:11:08

如果您可以在 x 未更改时进行忙等待,那么

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

如果您在更改时有任何事件或中断,则无需忙等待即可完成。

If you can afford busy waiting when x isn't changing, then

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

if you have any event or interrupt when it's changed, it can be done without busy waiting.

蓝眼泪 2024-10-13 05:11:08

一旦您弄清楚要如何处理 IO 和时序,就可以进行相关测试:

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

或:

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

或:

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

Once you figure out how you want to handle IO and timing, these are possibilities for the relevant test:

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

or:

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

or:

y = 0;
if (x == 1)
    y = 1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文