蜂鸣器控制框架

该框架主要工作4中模式

  1. 鸣叫1声
  2. 鸣叫2声
  3. 鸣叫3声
  4. 一直叫

核心代码

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   蜂鸣器的激活电

Guess you like

Origin blog.csdn.net/u010261063/article/details/120260521