gpt4 book ai didi

c - 在c中的无限循环内更新数据

转载 作者:行者123 更新时间:2023-11-30 19:16:52 25 4
gpt4 key购买 nike

我有一个功能,可以使用多路复用方式显示 7 段显示器的数字。据我所知,如何进行多路复用,您需要启用您希望显示的第一个段,同时禁用第二个段,要打印第二个段,您需要禁用第一个段并启用第二个段,并且您需要放置这是无限循环,以便数据成功打印。

现在我的问题是要显示的数据正在变化,并且需要不断更新,但在我的代码中我无法更新无限循环内的数据,因此它陷入了收到的第一个值。

我的代码:

对于我的主要功能:

     Void main(){
while(1){
displaytemp(TEMP);
}
}

Void displaytemp(int temp){
While(1){
Int tens = temp/10;
Int ones = temp%10;
Print(tens);
Enable first 7seg
Disable second 7seg
Delay();
Print(ones);
Disable first 7seg
Enable second 7seg
}

}

TEMP 来自中断源,如果我不将其放入无限循环中,它会不断更新,但它只能显示 1 位数字。 TEMP 是房间温度的整数。

最佳答案

您有 2 个无限循环 - 内部循环(在 displaytemp 内)阻止第一个循环。这是一种处理方法:

void main(){
while(true){
int temperature = get_temp();
display_digit(first, temp/10);
display_digit(second, temp%10);
}
}

void display_digit(segment, int digit){
if (segment == first) enable_7seg(first);
else disable_7seg(first);
if (segment == first) enable_7seg(second);
else disable_7seg(second);

Print(digit);
Delay();
}

关于c - 在c中的无限循环内更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com