发布网友 发布时间:2022-04-20 09:09
共6个回答
热心网友 时间:2023-10-18 19:24
1、//定时器赋予初值,在24Mhz时,每个中断1ms=0xf830 T0Flg=1; 问:其中T0Flg=1,的T0Flg是什么意思?
T0Flg是在定时器0计数满后,由硬件自动置1,如果有中断程序响应,则由硬件自动清零。
2、问:此处的循环判断语句是判断什么为真?如何跳出循环?
这里表示,程序不准备跳出循环了,这个就是主循环了。主循环一般都是处理固定的内容,依靠中断程序,或某些标志位来作为应对各种情况的处理条件。
热心网友 时间:2023-10-18 19:25
1、问题1,应该是T0Flg=0, 这是清中断标志位的
2、程序的目的就是在此不断循环,所以是while(1)
热心网友 时间:2023-10-18 19:25
根据 你的程序来看 T0Flg 应该是程序里面定义的一个标志位,不过具体的这个标志位是干什么的,你的程序给的不全看不出来……问题二里面的while(1)是个死循环,一直循环下去……好多程序都用到死循环的……如果想跳出循环的话,那就不能用while(1)了,就应该换成条件循环方式了……
热心网友 时间:2023-10-18 19:26
1,T0Flg是自定义的中断标志位,定时器到了,进入中断服务程序,定时器初值复位然后定义标志位为1,然后从中断出来,回主程序主程序判断T0Flg,如果等于1代表刚从中断出来,那么执行中断处理程序。同时标志位归零(即T0Flg=0)。
2,中断优先级高于那个死循环,当定时器溢出,就会跳出循环,进入中断服务程序!
热心网友 时间:2023-10-18 19:26
大概是自定义的位变量。
看看程序前面的变量定义部分。
while(1) 是必要的。
全部程序都要在一个循环里面,不要跳出来。
只有发生中断,才临时跳出,中断函数结束后,又要返回到循环之中。
热心网友 时间:2023-10-18 19:27
虽然没看完整条程序,但很明显T0Flg是中断标志量,就是说每产生一次中断,T0Flg就等于1;然后再清0;在T0Flg=1即中断的时候,我又产生什么操作。