该框架主要工作4中模式
- 鸣叫1声
- 鸣叫2声
- 鸣叫3声
- 一直叫
核心代码
H头文件
#ifndef __BEEP_H__
#define __BEEP_H__
#include <stdint.h>
#define TIME 100
typedef enum
{
MD_NULL,
MD_CLOSE, //关闭蜂鸣器模式
MD_ONE, //响1声
MD_TWO, //响2声
MD_THREE, //响3声
MD_CONTINUE, //一直响
} mode_t;
typedef void (*control_beep)(uint8_t lvt);
typedef struct _beep
{
//蜂鸣器激活电平
uint8_t active_lev;
//最后一次蜂鸣器状态,程序内部使用
uint8_t last_sta;
//蜂鸣器打开时间
uint32_t start_time;
//蜂鸣器工作模式 见 mode_t
mode_t mode;
// 蜂鸣器控制回调函数
control_beep ctrl;
// 形成蜂鸣器链表内部使用
struct _beep *next;
} beep_t;
/*
打开蜂鸣器
pbeep 被打开的蜂鸣器
md 打开方式
tick 当前时间戳
*/
void beep_open(beep_t *pbeep, mode_t md, uint32_t tick);
/*
关闭蜂鸣器
pbeep 被关闭的蜂鸣器
*/
void beep_cloe(beep_t *pbeep);
/*
注册一个蜂鸣器
pbeep 代注册的蜂鸣器指针句柄
ctrl 蜂鸣器控制回调函数
acive 蜂鸣器的激活电