怎样反复地运行一个程序,然后结束

怎样反复地运行一个程序,然后结束,第1张

什么语言?C++?JAVA?

while(true)

{

run();//你要运行的程序

sleep(2000);//间隔2秒

}

当然这个是死循环,满足你说的要求,但是不好,一般情况下:

如果是C++,可以用SetTimer来定时触发这个程序,KillTimer来解除定时触发。

如果是JAVA,可以用Timer类去schedule

TimerTask类的run()方法。

你要把你的主要实现和主界面分开,就是用多线程,一个线程用于处理数据,主界面线程用于显示和接受用户 *** 作,当用户按开始按钮时,开启处理线程,暂停时暂停处理线程,继续时再唤醒处理线程就行了。直接在主界面线程中sleep,肯定会造成界面没有响应的。

/

File: Mainc

功能: 使用定时器0实现1s定时,并打开IRQ中断,控制LED闪烁

同时使用定时器1实现比较匹配输出

/

#include "configh"

#define LEDCON 0x00002000 /P013引脚控制LED,低电平点亮/

/

名称: main()

功能: 控制LED闪烁

/

int main(void)

{ PINSEL0=0x02000000; //设置MAT10连接到P012

PINSEL1=0x00000000;

IODIR=LEDCON; //设置LED控制口为输出

TargetInit(); //定时器0初始化(Targetc文件)

while(1); //等待定时器0中断或定时器1匹配输出

return(0);

}

以上是主函数

接下来是targetc这个文件中的初始化函数(targetc是模板中的一个文件)

void TargetInit(void)

{

/初始化定时器0,实现05s定时;定时器1实现01s定时

Fclk=Fosc4=110592MHz4=MHz

Fpclk=Fcclk/4=MHz/4=110592MHz

/

T0PR=99; //设置定时器分频为100分频,得147450Hz

T0MCR=0x03; //匹配通道0匹配中断并复位T0TC

T0MR0=110592/2; //比较值

T0TCR=0x03; //启动并复位T0TC

T0TCR=0x01;

T1PR=99; //设置定时器分频为100分频,得147450Hz

T1MCR=0x02; //匹配通道0匹配中断并复位T1TC

T1MR0=110592/10; //比较值

T1EMR=0x30; //设置定时器1的T1MR0匹配输出,输出方式为翻转

T1TCR=0x03; //启动并复位T1TC

T1TCR=0x01;

/设置定时器0中断IRQ/

VICIntSelect=0x00; //所有中断通道设置为IRQ中断

VICVectCntl0=0x24; //定时器0中断通道分配最高优先级(向量控制器0)

VICVectAddr0=(uint32)IRQ_Exception; //设置中断服务程序地址向量

VICIntEnable=0x00000010; //使能定时器0中断

}

SetTimer(1,2000,NULL);//

设置定时器2秒启动

void

CXXDlg::OnTimer(UINT

nIDEvent)

{

KillTimer(nIDEvent);//

你的代码

OnCancel();

CDialog::OnTimer(nIDEvent);

}

添加消息循环

BEGIN_MESSAGE_MAP(CXXDlg,

CDialog)

……

ON_WM_TIMER()

END_MESSAGE_MAP()

以上就是关于怎样反复地运行一个程序,然后结束全部的内容,包括:怎样反复地运行一个程序,然后结束、MFC让程序暂停后等待用户按一个继续按钮,程序继续执行,如何实现、飞利浦2100系列ARM7的定时器计时程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10636003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存