HiroakiShi
04.06.2011, 16:49
Ich möchte für mein Projekt diesen Befehl für mein Projekt verwenden.
void Sound (
uint16_t freq,
uint16_t duration_msec,
uint8_t amplitude)
{
uint16_t wait_tics;
uint32_t n,k,period_usec,dauer_usec;
period_usec = 1000000L / freq;
dauer_usec = 1000 * (uint32_t) duration_msec;
k = dauer_usec / period_usec;
//IR Interuptfreq=36KHz
//Wavefreq=18KHz
wait_tics = 18000 / freq;
MotorSpeed (amplitude, amplitude);
for (n = 0; n < k; n++)
{
MotorDir (FWD, FWD);
Sleep (wait_tics);
MotorDir (RWD, RWD);
Sleep (wait_tics);
}
MotorSpeed (0, 0);
}
Vom Prinzip her versteh ich es aber den Teil kapier ich nicht ganz.
period_usec = 1000000L / freq;
dauer_usec = 1000 * (uint32_t) duration_msec;
k = dauer_usec / period_usec;
//IR Interuptfreq=36KHz
//Wavefreq=18KHz
wait_tics = 18000 / freq;
was ist z.B. 1000000L
ist dauer_usec : 1000 "mal" duration_msec, und warum (uint32_t)
woher kommen die: IR Interuptfreq=36KHz
Wavefreq=18KHz
Hoffe man kann mir helfen.
void Sound (
uint16_t freq,
uint16_t duration_msec,
uint8_t amplitude)
{
uint16_t wait_tics;
uint32_t n,k,period_usec,dauer_usec;
period_usec = 1000000L / freq;
dauer_usec = 1000 * (uint32_t) duration_msec;
k = dauer_usec / period_usec;
//IR Interuptfreq=36KHz
//Wavefreq=18KHz
wait_tics = 18000 / freq;
MotorSpeed (amplitude, amplitude);
for (n = 0; n < k; n++)
{
MotorDir (FWD, FWD);
Sleep (wait_tics);
MotorDir (RWD, RWD);
Sleep (wait_tics);
}
MotorSpeed (0, 0);
}
Vom Prinzip her versteh ich es aber den Teil kapier ich nicht ganz.
period_usec = 1000000L / freq;
dauer_usec = 1000 * (uint32_t) duration_msec;
k = dauer_usec / period_usec;
//IR Interuptfreq=36KHz
//Wavefreq=18KHz
wait_tics = 18000 / freq;
was ist z.B. 1000000L
ist dauer_usec : 1000 "mal" duration_msec, und warum (uint32_t)
woher kommen die: IR Interuptfreq=36KHz
Wavefreq=18KHz
Hoffe man kann mir helfen.