百问文档175页代码11.3.5是如何实现延时功能的?它在main中出现且函数内部没有调用其他函数。它与代码11.3.6又是如何产生联系的
我还有些疑问
SysTick每计数完一次则进入Sys Tick中断,也就是定时器每经历一个周期就进入11.3.6函数,不过我查看main函数并没有在哪里调用11.3.6函数也就是中断处理函数,这个函数是怎么执行的
11.3.6中断处理函数是将systick_t变量自减到0,我理解的这个systick_t变量是定时器周期的个数,不过为什么systick_t变量完成一次自减就恰好花费了定时器一个周期的时长,这是怎么实现的
11.3.5 SysTickDelay函数的作用就是修改全局变量systick_t的值吗,下面的while循环的作用是什么
前面一个章节讲的中断 ,可以再看一下。中断处理函数不需要调用,只要产生中断就会自己执行。
定时器溢出一次会产生一次中断,产生一次中断就会让 systick_t 的值减一 ,
while 循环就是延迟多少个 定时器的周期塞
我想梳理一下思路请您看看对不对
在main函数的第38行初始化了定时器后定时器开始工作,每次溢出产生一个中断就会调用11.3.6函数,在46行之前因为system_t没有赋值,所以不进入if条件。直到46行和48行进入delay函数给system_t赋值,每产生一次中断systems_t减一,直到减为0,不满足while循环条件退出delay函数,继续往下执行
嗯,差不多是这样的zsbdzsbd
十分感谢zsbdzsbdzsbd