ข้างล่างนี้ภาษาซีเสียงไซเรนตำรวจกับเสียงไซเรนรถพยาบาลค่ะ
คำถาม : หากต้องการแก้ไขให้เสียงไซเรนตำรวจและเสียงไซเรนรถพยาบาลคล้ายกับเสียงจริงที่สุดควรแก้ให้เป็นค่าเท่าไรค่ะ
(บรรทัด 27-46 เป็นฟังก์ชันการทำงานของ sound1)
(บรรทัด 47-66 เป็นฟังก์ชันการทำงานของ sound2)
void sound1(void);
void sound2(void);
void Vdelay_us(int time);
main()
{
TRISB=0xFC;
PORTB.F1=0;
while(1)
{
while(PORTB.F2==0)
{
sound1();
}
while(PORTB.F3==0)
{
sound2();
}
}
}
void Vdelay_us(int time)
{
int i ;
for(i=0;i<time;i++)
{
}
}
void sound1(void)
{
int i ;
PORTB.F1=1;
for(i=;i>20;i--)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0;
Vdelay_us(i);
}
PORTB.F1=0;
for(i=20;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
}
}
void sound2(void)
{
int i ;
PORTB.F1=1;
for(i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(20);
PORTB.F0=0;
Vdelay_us(20);
}
PORTB.F1=0;
for(i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(50);
PORTB.F0=0;
Vdelay_us(50);
}
}
ภาพวงจรไซเรน 2 เสียง (โปรติอุส)
ภาษาซี วงจรไซเรน 2 เสียง
คำถาม : หากต้องการแก้ไขให้เสียงไซเรนตำรวจและเสียงไซเรนรถพยาบาลคล้ายกับเสียงจริงที่สุดควรแก้ให้เป็นค่าเท่าไรค่ะ
(บรรทัด 27-46 เป็นฟังก์ชันการทำงานของ sound1)
(บรรทัด 47-66 เป็นฟังก์ชันการทำงานของ sound2)
void sound1(void);
void sound2(void);
void Vdelay_us(int time);
main()
{
TRISB=0xFC;
PORTB.F1=0;
while(1)
{
while(PORTB.F2==0)
{
sound1();
}
while(PORTB.F3==0)
{
sound2();
}
}
}
void Vdelay_us(int time)
{
int i ;
for(i=0;i<time;i++)
{
}
}
void sound1(void)
{
int i ;
PORTB.F1=1;
for(i=;i>20;i--)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0;
Vdelay_us(i);
}
PORTB.F1=0;
for(i=20;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
}
}
void sound2(void)
{
int i ;
PORTB.F1=1;
for(i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(20);
PORTB.F0=0;
Vdelay_us(20);
}
PORTB.F1=0;
for(i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(50);
PORTB.F0=0;
Vdelay_us(50);
}
}
ภาพวงจรไซเรน 2 เสียง (โปรติอุส)