#include "asuro.h"
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
#define | BEEP sound(1000, 100, 255) |
Funktionen | |
void | Sound (uint16_t freq, uint16_t duration_msec, uint8_t amplitude) |
Soundausgabe ueber die Motoren. |
Mit den Motoren des ASUROs lassen sich auch Töne erzeugen.
Das Prinzip dahinter ist folgendes:
Die Frequenz des Tons wird durch umschalten der Motor Drehrichtung bestimmt.
Die Lautstärke wird über die Geschwindigkeit der Motoren bestimmt.
Theoretisch liessen sich damit auch Stereo Signale erzeugen, da es ja zwei
Motoren gibt, die sich auch getrennt ansteuern lassen. Dazu müßte die
Sound Funktion allerdings umgeschrieben werden.
Definiert in Datei sound.c.
void Sound | ( | uint16_t | freq, | |
uint16_t | duration_msec, | |||
uint8_t | amplitude | |||
) |
Soundausgabe ueber die Motoren.
[in] | freq | Frequenz in Hz |
[in] | duration_msec | Laenge in Millisekunden |
[in] | amplitude | Amplitude |
// Laesst den Asuro einen Ton von 1kHz für eine 1/2 Sekunde mit max. Amplitude spielen Sound(1000, 500, 255);
Definiert in Zeile 46 der Datei sound.c.
00047 { 00048 uint16_t n,k,wait_tics; 00049 uint32_t period_usec,dauer_usec; 00050 00051 period_usec=1000000L/freq; 00052 dauer_usec=1000*duration_msec; 00053 k=dauer_usec/period_usec; 00054 00055 //IR Interuptfreq=36KHz 00056 //Wavefreq=18KHz 00057 00058 wait_tics=18000/freq; 00059 00060 MotorSpeed(amplitude,amplitude); 00061 00062 for (n=0;n<k;n++) 00063 { 00064 MotorDir(FWD,FWD); 00065 Sleep(wait_tics); 00066 MotorDir(RWD,RWD); 00067 Sleep(wait_tics); 00068 } 00069 MotorSpeed(0,0); 00070 }