beep.c

来自「这是一个PIC单片机的实时操作系统」· C语言 代码 · 共 101 行

C
101
字号

#ifndef  _beep_c
#define   _beep_c

#include "config.H"
 BEEP_CONTROL beepBuf;
 void beepControl(void);
/***********************************
功能:蜂鸣器控制
入口:无
出口:无	     
************************************/
  void beepControl(void)
{
 	//static uint8 beepBufBak;
	//static uint8	beepCounter;
   // static uint8 beepBuf;
//   	MESSAGE msg;	
	//if(!Message(&msg))
//		return;
//	if(msg==MES_BEEP)
		nop;
	    nop;
	  nop;
	if(beepBuf==BEEP_NULL)
		return;
	if(beepBufBak!=beepBuf)//状态变化
		{
		if((beepBuf&BEEP_CLOSE)!=0)
			{
			goto close;		
		
			}
		else if((beepBuf&BEEP_OPEN)!=0)
			{
			BEEP_CON=BEEP_OPEN_CON;
			goto open;
			}
		else
			{
			beepBufBak=beepBuf;
			BEEP_CON=BEEP_OPEN_CON;;
			beepCounter=0;
			}

		}
	else
		{
		beepCounter++;
		if((beepBuf&BEEP_LONG)!=0)//长嘀
			{
			if(beepCounter==60)
				{
				goto close;
				}
			}
		else if((beepBuf&BEEP_ONE)!=0)//一声
			{
			if(beepCounter==10)
				{
				close:
				BEEP_CON=BEEP_CLOSE_CON;
				open:
				beepBuf=BEEP_NULL;
				beepBufBak=BEEP_NULL;
				return;
				}
			}	
		else if((beepBuf&BEEP_THREE)!=0)//三声
			{
			if(beepCounter==10)
				BEEP_CON=BEEP_CLOSE_CON;
			if(beepCounter==20)
				BEEP_CON=BEEP_OPEN_CON;
			if(beepCounter==30)
				BEEP_CON=BEEP_CLOSE_CON;
			if(beepCounter==40)
				BEEP_CON=BEEP_OPEN_CON;
			if(beepCounter==50)
				goto close;
			}
		else //连续嘀
			{
			if(beepCounter==20)
				BEEP_CON=BEEP_CLOSE_CON;
			if(beepCounter==200)
				{
				BEEP_CON=BEEP_OPEN_CON;
				beepCounter=0;
				}
			}
		}
	
}	


#endif



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?