init()
{
TMOD=0x11
TH0=TH1=(65536-10000)/256
TL0=TL1=(65536-10000)%256
TR0=1
TR1=1
ET0=1
ET1=1
EA=1
}
之后中断号分别为:
T0:
void t0isr() interrupt 1
{........... }
T1:
void t1isr() interrupt 3
{............}
//timer0设定为计数器模式1TMOD &= 0xf0 //清除原来的设定
TMOD |= 0x05 //T0为计数器模式1
TH0 = 0
TL0 = 0 //从0开始计数
TR0 = 1 //使能T/C0
//IE |= 0x82 //Timer0中断使能,不需要就注释掉该行
另外执行不了有可能是你的实验板没有连接T0引脚
" 运行一个语句一段时间(如3分钟)。" --这个语句 或程序块 需要 的执行 时间 是多少?
如果 这个 语句 或程序块 执行 需要 的 时间 长于 3 分钟,那么 这个 语句 或程序块 中 需要 嵌入 时间 测定 语句。
如果 时间 短于 3 分钟,你需要 加入 等待。
----------
等待函数:
void wait_ms ( int ms )
{
clock_t endwait
endwait = clock () + ms
while (clock() <endwait) {}
}
c 语言 时间:
clock_t t0, t1,t
int dt
dt = 3*60*1000 // 3分钟 == 毫秒数
if ( 满足条件了){
t0 = clock () //开始时刻 毫秒
t1 = t0 + dt //目标终止 时刻
这里执行语句或程序块,假定 时间 短于 3 分钟
t = t1 - clock ()// 等待时间 毫秒数
wait_ms(t) // 等待
}
===============
执行语句或程序块,假定 时间 长于 3 分钟 , 执行语句或程序块中要 嵌入:
t = clock()
比较 t 与 目标 t1 , if (t>=t1) 终止 程序。
===================================
一般这类程序 要用 c++ . 定时控制 用 timer ( 定时器) 或
运行 线程:
std::thread xc1 (foo,t0,3)
时间控制,到时间则 关闭线程。