久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于C語言switch-case結構:4KHZ無源蜂鳴器單片機驅動源程序
[打印本頁]
作者:
zhao2022
時間:
2022-6-25 14:23
標題:
基于C語言switch-case結構:4KHZ無源蜂鳴器單片機驅動源程序
//定時器每125uS調用Buz_Output()函數一次,實現無源蜂鳴器4KHZ驅動
//功能參數說明:rbeep=0,蜂鳴器不響。rbeep=1,響1聲。rbeep=3,響2聲。
#define BUZ_OUT_TIME 800 /125uS*800=100mS
#define BUZ_STOP_TIME 800 /125uS*800=100mS
unsigned char rbeep;
unsigned int temp;
void Buz_Output(void)
{
switch (rbeep)
{
case 0:
BUZ_GPIO = 0;
break;
//響100mS****************************************************
case 1:
BUZ_GPIO = ~BUZ_GPIO;
temp ++;
if (temp > BUZ_OUT_TIME) //125uS*800=100mS
{
temp = 0;
rbeep = 0;
}
break;
//不響100mS****************************************************
case 2:
BUZ_GPIO = 1;
temp ++;
if (temp > BUZ_STOP_TIME)
{
temp = 0;
rbeep = 1;
}
break;
//響100mS****************************************************
case 3:
BUZ_GPIO = ~BUZ_GPIO;
temp ++;
if (temp > BUZ_OUT_TIME)
{
temp = 0;
rbeep = 2;
}
break;
default:break;
}
}
作者:
datouyuan
時間:
2022-6-27 09:49
你這驅動還不夠完善。只實現斷續響1聲,斷續響2聲,立刻停3種功能。
我也實現過4KHZ無源蜂鳴器驅動,代碼框架和你一樣,代碼行數約為你的一半,但能實現下列功能。
1.立刻停(rbeep=0;)
2.斷續響n聲(rbeep=n;),n取值1~253
3.永久斷續響(rbeep=254;)
4.永久連續響(rbeep=255;rbeep1=0;)
5.連續響(n*100)毫秒(rbeep=255;rbeep1=n;)
按我提到的修改代碼,我相信樓主也能做到。
作者:
zhao2022
時間:
2022-6-27 14:08
datouyuan 發表于 2022-6-27 09:49
你這驅動還不夠完善。只實現斷續響1聲,斷續響2聲,立刻停3種功能。
我也實現過4KHZ無源蜂鳴器驅動,代 ...
這個是我初學時寫的,確實有很多改進空間
作者:
xhaity
時間:
2022-11-15 22:40
datouyuan 發表于 2022-6-27 09:49
你這驅動還不夠完善。只實現斷續響1聲,斷續響2聲,立刻停3種功能。
我也實現過4KHZ無源蜂鳴器驅動,代 ...
可以共享一下嗎?
作者:
xhaity
時間:
2022-11-17 10:08
最近產品需要根據運行狀態蜂鳴器發出1聲-6聲的程序,現把代碼共享出來;用的有源驅動,可以修改宏定義,改為無源驅動
作者:
xhaity
時間:
2022-11-17 10:13
最近產品需要根據運行狀態,蜂鳴器 發出1聲到6聲的鳴叫,用的是有源蜂鳴器,也可以用無源蜂鳴器,修改宏定義即可。現把代碼共享出來,不管怎么優化也沒有大神的代碼少;測試可用
uint8_t Buzzer_Enable; //蜂鳴器驅動函數使能
uint8_t on_time,off_time; //鳴叫時間,停止時間
uint8_t Buzzer_cnt; //鳴叫次數
//調用一次Buzzer_Set_int,蜂鳴器驅動函數就會執行一次,
//例如想讓蜂鳴器鳴叫,調用Buzzer_Set_int(蜂鳴次數,蜂鳴時長,蜂鳴關時長)一次,蜂鳴器就會按照設定參數鳴叫。
void Buzzer_Set_int(uint8_t cnt,uint8_t oncnt,uint8_t offcnt)
{
on_time=oncnt;
off_time=offcnt;
on_count = cnt;
Buzzer_Enable = 1;
}
//蜂鳴器驅動函數,放在定時器中斷函數里面,100ms執行一次
void Buzzer_Output(void)
{
static uint8_t oncnt,offcnt, buzzercnt = 0;
if(buzzercnt < on_count && offcnt == 0)
{
oncnt = on_time;
offcnt = off_time;
buzzercnt++;
}
else if(buzzercnt>=on_count && offcnt == 0)
{
Buzzer_Enable = 0;
buzzercnt = 0;
oncnt = 0;
offcnt = 0;
BEEPOFF();
}
if(Buzzer_Enable)
{
if(oncnt)
{
oncnt--;
BEEPON();//蜂鳴器響
}
else if(offcnt)
{
offcnt--;
BEEPOFF();//蜂鳴器關
}
else
{
if(on_count>0)
{
BEEPOFF();
}
}
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产97人人超碰caoprom
|
欧美一级片
|
99国产精品久久久久老师
|
狠狠干网站
|
中文字幕日本一区二区
|
www国产成人免费观看视频,深夜成人网
|
欧美性生交大片免费
|
一区二区中文
|
免费看a
|
午夜精品一区二区三区在线播放
|
久久成人国产精品
|
国产激情视频在线观看
|
日韩男人天堂
|
久久精品欧美一区二区三区不卡
|
日韩精品成人网
|
亚洲日本一区二区
|
国产我和子的乱视频网站
|
色就干
|
国产精品一卡二卡三卡
|
国产成人午夜高潮毛片
|
懂色中文一区二区三区在线视频
|
欧美日日
|
国产日产欧产精品精品推荐蛮挑
|
日韩精品一区二区三区中文字幕
|
精品一区二区三区四区外站
|
国产精品区二区三区日本
|
一级片在线观看
|
天天综合成人网
|
91在线导航
|
在线国产一区
|
天天色综
|
免费观看一级毛片视频
|
亚洲综合色
|
97av
|
天天爱爱网
|
精品久久久久久久久久久久久久久久久
|
国产精品99精品久久免费
|
亚洲成人免费视频在线
|
91久久精品
|
1204国产成人精品视频
|
国产精品美女久久久久久免费
|