Hallo

Im Gegensatz zu beep() erzeugt sound() eine zusätzliche Pause nach dem Ton. Die Funktion in RP6ControlLib.h:

#define sound(_pitch_,_time_,_delay_) {beep(_pitch_,_time_);mSleep(_delay_ + _time_);}

Das bedeutet, sound(tonhöhe, dauer, pause) macht das: beep(tonhöhe, dauer); mSleep(pause);


Beschrieben wird das in RP6ControlLib.c beim beep():
Code:
/**
 * You can use this function to make the beeper beep ;) 
 * But this function should not be used as it does not
 * generate a delay for the sound and a delay between 
 * two sounds. Better is to use the "sound" macro, which
 * uses this function and adds the required delays.
 *
 * "sound(pitch,time,delay)"
 *
 * 0 = lowest frequency
 * 255 = highest frequency
 *
 * Example:
 * sound(150,50,25);
 * sound(200,50,25);
 *
 * Of course the function "beep" is nice to generate
 * sounds when you need to do other things at the same
 * time... 
 */
void beep(uint8_t pitch, uint16_t time)
{
	controlStatus.beep = true;
	sound_timer = time;
	OCR2 = 255-pitch;
	TCCR2 =  (1 << WGM21) | (1 << COM20) | (1 << CS22) | (1 << CS21);
}
Mehr Infos zu beep():
https://www.roboternetz.de/community...z-beim-Beeper?

Gruß

mic