sdarling 发表于 2021-3-12 00:53
大佬有更简便的方法吗,刚刚那个用是能用的,声音不对是我其他地方弄错了
char t,c;//全局变量
//蜂鸣器初始化
//c1声响次数
//t1设定单次声音的长度
/*
例:蜂鸣器单次响2秒,定时器溢出10ms
t1=200,c1=0
例:蜂鸣器响4次,每次500ms,定时器溢出10
t1=50,c1=4
如果定时器一直开启,溢出时间不能太长,
如果定时器与蜂鸣器同步开启关闭,那就无所谓
但是浪费定时器
*/
void BeepInit(char t1,char c1)//此函数哪里需要就放哪里
{
t=t1;//单次=溢出*t1
c=c1*2;//单次时次数为0
beep=1;//开蜂鸣器
}
void time_INT()//定时器溢出值自定,不同单片机函数写法自己修改
{
//这里你的定时器初值是否需要重载?
if(t--==0)
{
if(c==0)
beep=0;//关
else
{
beep=~beep;
c--;
}
}
}
注意以上程序是要调用定时器的,你有准确调用定时器吗? |