c语言中,T0与T1的中断信号分别是多少?

Python016

c语言中,T0与T1的中断信号分别是多少?,第1张

C语言中,定时器T0和T1要产生中断的话,需要初始化比如:

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设定为计数器模式1

TMOD &= 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)

时间控制,到时间则 关闭线程。