PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : M32 Soundbefehl



fulltime
22.12.2011, 17:28
sound(...,...,...);
Hy Leute ich möchte gerne wissen, welcher der drei Parametern was ist?
Das erste ist glaube ich die Frequenz, das zweite Zeit, aber was ist das letzte?

radbruch
22.12.2011, 17:56
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():

/**
* 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/threads/46136-Frequenz-beim-Beeper?

Gruß

mic

fulltime
23.12.2011, 16:08
Danke für die rasche Antwort! :)