本例中定时100秒。
打开后计时,在DOS窗口按任意键停止
关机 *** 作。
你可以将100改为0,实现立即关机。
#include
<stdioh>
#include
<conioh>
void
main(void)
{
system("shutdownexe
-s
-t
100");
getch();
system("shutdownexe
-a");
}不懂你是要问整个代码还是特定代码段
要是定时执行一段代码的话可以把代码做成一个函数,在代码执行前加个标志位,如果条件成立就执行,不成立就不执行,在定时中断中设置标志位。
要是整个代码就让单片机进入睡眠和唤醒功能吧,现在很多单片机都带有睡眠状态可能不是你最想要的,但是可以大致满足你的要求。
另外还可以借助DOS的at命令进行计划任务。
#include <stdioh>
#include <conioh>
#include <timeh>
#include <dosh>
main()
{
int HourWant=22;
int MinWant=31;
/22点31分输出信息/
struct time t;
while(1)
{
gettime(&t);
if (tti_hour==HourWant && tti_min==MinWant)
{
printf("time is up");
break;
}
sleep(1); /Delay for 1 second/
}
getch();
}注意:
多数C语言编译器不支持多线程,而且ANSI C也没有线程库,因此C语言无法实现实际意义上的定时器(即包含触发机制的定时器)。
回到本问题:
1 计数器:
简单的int变量(一般为全局或相对全局)就可以实现。
2 计时器:
包含timeh,使用clock相关函数,通过运行时间差来实现计时功能。示例:
/@/ clock_t startstart = clock();
……
/@/ clock_t endend = clock();
float start2end = (float)(endend-startstart)/CLOCKS_PER_SEC;
// 这里的start2end就是时间差
3 定时器
使用系统API,比如Windows下的Sleep()函数(注意,是大写),原型如下:
VOID Sleep(
DWORD dwMilliseconds // sleep time in milliseconds
);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)