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--;
}
}
}
注意以上程序是要調用定時器的,你有準確調用定時器嗎? |