定时器和中断函数是怎么运行的

void main()
{ Timer0Init();
while(1)
{
}
}

void main()
{
while(1)
{
Timer0Init();
}
}
这两个有什么区别
上面那个我觉得进入while的死循环之后就不会再中断了

取决于你的定时器初始化方式和中断服务处理,如果是自动重装,或者在中断服务程序里重装,那是可以一直触发中断的。
至于2,这种做法不太可取,哪有一直初始化定时器的,可能因为你不停重置计数器,一次中断都不会触发

void main()
{ Timer0Init();
while(1)
{
}
}
和
void main()
{
while(1)
{
Timer0Init();
}
}

第一种:在while前初始化定时器,再运行while,定时器会先运行,但是进入while后定时一样会运行。而且定时器优先级会更高
第二种,在while中一直初始化定时器,其实没有那个必要,效果和第一种一样,放在while中不停初始化会影响定时器定时时间。

定时器计时是硬件的,独立于软件,第一种是正确的
第二种不停的初始化会影响定时器,定时器没法正常运行