红尘情歌
void beep_frq(u16 frq){
u32 time;
if(frq != 1000){
time = 500000/((u32)frq);
BEEP_ON;
delay_us(time);
BEEP_OFF;
delay_us(time);
}else{
delay_us(1000);
}
}
void beep_sing (void){
uc16 tone[] = {247,262,294,330,349,392,440,294,523,587,659,698,784,1000};
u8 music[]={
5,5,6,8,7,6,5,6,13,13,
5,5,6,8,7,6,5,3,13,13,
2,2,3,5,3,5,6,3,2 ,1 ,
6,6,5,6,5,3,6,5,13,13,
5,5,6,8,7,6,5,6,13,13,
5,5,6,8,7,6,5,3,13,13,
2,2,3,5,3,5,6,3,2 ,1 ,
6,6,5,6,5,3,6,1,
13,8,9,10,10,9,8,10,9,8,6,
13,6,8,9,9,8,6,9,8,6,5,
13,2,3,5,5,3,5,5,6,8,7,6,
6,10,9,9,8,6,5,6,8
};
u8 time[] = {
2,4,2,2,2,2,2,8,4,4,
2,4,2,2,2,2,2,8,4,4,
2,4,2,4,2,2,4,2,2,8,
2,4,2,2,2,2,2,8,4,4,
2,4,2,2,2,2,2,8,4,4,
2,4,2,2,2,2,2,8,4,4,
2,4,2,4,2,2,4,2,2,8,
2,4,2,2,2,2,2,8,
4,2,2,2,4,2,2,2,2,2,8,
4,2,2,2,4,2,2,2,2,2,8,
4,2,2,2,4,2,2,5,2,6,2,4,
2,2,2,4,2,4,2,2,12
};
u32 delay;
u16 i,j;
delay = 10;
for(i=0;i<sizeof(music)/sizeof(music[0]);i++){
for(j=0;j<((u16)time[i])*tone[music[i]]/delay;j++){
beep_frq((u32)tone[music[i]]);
}
}
}