时间片的理解

可以利用定时器产生中断的时间产生时间片效果,在进入中断的次数不同产生不同的紧急事件,设置进入中断的时间我们可以通过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]之间不互相影响,就能产生一种几乎同时进行多任务的错觉
	//时间片1
	if(time[0] == 10)
	{
		time[0] = 0;
        led1_TAG;		
	}
	//时间片2
	if(time[1] == 100)
	{
		time[1] = 0;
		Echo_Start();//超声波模块工作
	}
	//时间片3
	if(time[2] == 300)
	{
		time[2] = 0;
		ADC1->CR2 |= 1 << 30;//开启ADC1转换
	}
	
	
	
	
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值