时间片的理解

可以利用定时器产生中断的时间产生时间片效果,在进入中断的次数不同产生不同的紧急事件,设置进入中断的时间我们可以通过ARR(重载载值)和PSC(分频值)设置,假如我们设置这个进入中断时间为1ms。因为不同的时间片切换的很快,所以让人产生一种单片机在同时在进行多任务的错觉。

/*********************************************
函数功能:tim6中断服务函数
形参:void
返回值:void
函数说明:
用TIM6中断实现不同的紧急事件
**********************************************/
u16 time[5]={0};void TIM6_DAC_IRQHandler(void)
{//清除标志位TIM6->SR &=~ (1 << 0);//紧急事件time[0]++;time[1]++;time[2]++;//时间片其实就是利用每次定时器产生中断的时间,用ARR和psc设置每次进入中断的时间为1ms//然后利用buf的递增,比如判断buf[0]=10的时候,相当于过了10ms在时间片进行一次紧急事件//然后buf[0]再清零,进行下一次,然后不同的buf[x]之间不互相影响,就能产生一种几乎同时进行多任务的错觉//时间片1if(time[0] == 10){time[0] = 0;led1_TAG;		}//时间片2if(time[1] == 100){time[1] = 0;Echo_Start();//超声波模块工作}//时间片3if(time[2] == 300){time[2] = 0;ADC1->CR2 |= 1 << 30;//开启ADC1转换}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部