gpt4 book ai didi

c - 实时时钟、增量并显示在 C 语言的 LED 上

转载 作者:行者123 更新时间:2023-11-30 15:41:12 25 4
gpt4 key购买 nike

我的时钟有一个循环,如果键盘发送 x 值 30,我会尝试添加 30 秒。然后它会显示在 LED 显示屏上。它有效,但我似乎在添加 30 秒和超过 59 秒时遇到问题。它最初的工作方式是不断添加 30 到 60 到 90 + 120 等。但当我添加 30 秒时,我希望它每 60 秒滚动一次。如果我应该重写代码,我会全力以赴,但任何线索都会有所帮助。请注意此代码适用于嵌入式项目,并且只是一个片段。初始设定时间在设定循环之前添加,并作为测试值。

n=test;
for(i=0;i<n;i++){

q = test %100; /*q makes real time clock work in 60 sec decriments*/

if(q==0){
test = test - 40;
}
key = KeypadReadPort();
x = keys[key];
if(x==30){ /*add 30 seconds during count*/
n = n + 30;
sec1=(test+30)%90;
if(sec1>=60){
min=q;
sec2=(test+30)%60;
test=sec2+(100+q);
} else if (sec1<60){
test=test+30;
}
SevenSegWrite(test);/* display result on LED*/


}
test = test - 1; /*count down tick*/
SevenSegWrite(test);
OSTimeDlyHMSM(0, 0, 1, 0);/*1 second tick*/
if(test==0){

for(i=0;i<750;i++){ /*buzzer*/
PTT = PTT | 0x20;
OSTimeDlyHMSM(0,0,0,1);
PTT = PTT & 0xDF;
OSTimeDlyHMSM(0,0,0,1);
}
}
}
test=0;

最佳答案

我会这样做。这个对我有用。你有一个美好的开始!您只需要稍微分解一下您的时钟数字即可。

 if(start<15){
min=0; /*microwave keypad numeric input method*/
n = test;
for(i=0;i<n;i++){
q = test %100; /*q makes real time clock work in 60 sec decriments*/

if(q==0){
test = test - 40;
}
key = KeypadReadPort();
x = keys[key];
if(x==30){ /*add 30 seconds during count*/

d4 = test % 10;
d3 = (test / 10) % 10;
d2 = (test / 100) % 10;
d1 = (test / 1000) % 10;
min=(d1*1000)+(d2*100);
sec1=(d3*10)+d4;
n = n + 30;
sec2=(sec1+30)%90;

if(sec2>=60){
min=min+100;
sec1=(sec1+30)%60;
test=sec1+(min);
} else if (sec2<60){
test=test+30;
}
SevenSegWrite(test);


}
test = test - 1; /*count down tick*/
SevenSegWrite(test);
OSTimeDlyHMSM(0, 0, 1, 0);
if(test==0){

for(i=0;i<750;i++){ /*buzzer*/
PTT = PTT | 0x20;
OSTimeDlyHMSM(0,0,0,1);
PTT = PTT & 0xDF;
OSTimeDlyHMSM(0,0,0,1);
}
}

关于c - 实时时钟、增量并显示在 C 语言的 LED 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591785/

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