zoukankan      html  css  js  c++  java
  • 单片机的操作系统同时处理怎么个好法?

    • 学过单片机的操作系统之后,一直很纠结,脑子一团糊涂
    • 书上说,操作系统看似同时运行两个任务,其实从真正意义上来说,MCU在同一时刻只运行了一个任务,两个任务每个任务运行一个时间片,从效果上看就好像同时运行两个任务,然后就开始纠结,那这样,操作系统不也是一个任务一个任务的运行嘛,那操作系统和裸机运行相比优势在哪呢?想啊想。。。就想到这么个例子。。。
    • 最近赶紧去学学单片机的操作系统去,感觉到它的好处了,,
    /*裸机*/
    while(1)//LED灯闪烁的同时,蜂鸣器鸣叫(LED、BEEP同时间隔500ms闪烁、鸣叫)
    {
    	LED=1;
    	BEEP=1;
    	LL_mDelay(500);
    	LED=0;
    	BEEP=0;
    	LL_mDelay(500);
    }
    //如果,闪烁的频率和鸣叫的时间间隔不一样呢?
    //LED每500ms闪烁,BEEP每200ms鸣叫,如何实现?
    
    while(1)
    {
    	LED = 1;
    	BEEP = 1;
    	LL_mDelay(200);
    	BEEP = 0;
    	LL_mDelay(200);
    	BEEP = 1;
    	LL_mDelay(100);
    	LED = 0;
    	//....
    	/*当然,真正用的时候不会用延迟,用定时器中断来处理就好,只是个示意*/
    }
    
    /*操作系统*/
    
    osCreatTask LED_Task;
    osCreatTask BEEP_Task;
    
    void LED_Task(void)
    {
    	while(1)
    	{
    		LED = 1;
    		LL_mDelay(500);
    		LED = 0;
    		LL_mDelay(500);
    	}
    }
    
    void BEEP_Task(void)
    {
    	while(1)
    	{
    		BEEP =1 ;
    		LL_mDelay(200);
    		BEEP = 0;
    		LL_mDelay(200);
    	}
    
    }
    
    
    
    
    
    
    
    
    
    
    
    
    	
    
  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/hhsxy/p/14018362.html
Copyright © 2011-2022 走看看