BeepLed.c
#include "BeepLed.h"
static u8 nflag_long_beep = 0;
static u8 count_beep = 0;
void SetBeep(u8 flag)
{
if(flag ==0)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
}
else
{
GPIO_SetBits(GPIOC, GPIO_Pin_13);
}
}
void BeepSound(u8 type,u8 count)
{
if(type == BEEP_LONG)
{
nflag_long_beep = 1;
count_beep = 5;
}
else
{
if(count<1) count = 1;
count_beep = count*2-1;
}
}
void Beep_task(void)
{
if(N_1ms_soundbeep>=200)
{
N_1ms_soundbeep = 0;
if(count_beep>0)
{
if(count_beep%2)
{
SetBeep(1); //置1响
}
else
{
if(nflag_long_beep!=1)
{
SetBeep(0); //置0哑
}
}
count_beep --;
}
else
{
SetBeep(0);
nflag_long_beep = 0;
}
}
}
void Beep(void)
{
BeepSound(BEEP_SHORT,1);
}
BeepLed.h
#ifndef _BEEPLED_H
#define _BEEPLED_H
#include "stm32f10x.h"
#include <stdio.h>
#include "proglobe.h"
#define BEEP_LONG 1
#define BEEP_SHORT 0
void Beep_task(void);
void Beep(void);
void BeepSound(u8 type,u8 count);
#endif