PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Sound



Masterarthur
15.06.2007, 16:40
Hallo Asurogemeinde,

kann mir jemand sagen, warum bei mir der Sound nicht richtig funktioniert? Egal wie ich die Parameter für Frequenz und Dauer auch setze, es kommt immer nur ein sehr kurzer Beep für ca. 200 ms. ](*,) Das Sounddemo von Henk als HEX direkt geflasht funktioniert super!

Gruß
Arthur

#include "myasuro.h"
#include "asuro.h"

int main(void)
{
Init();
EncoderInit();

int i;
for(i=0;i<4;++i)
{
Go( 1000,150); // 1 Meter
Msleep (750); // warten
Sound ( 1000, 1500, 250); // 1000 Hz, 1500 ms
Msleep (750); //warten
Turn( 90,150); // 90 Grad Kurve
}

while(1);
return 0;
}

Bääääär
15.06.2007, 17:43
Ich kenne das Modul, das du verwendest nicht, aber kann es sein, dass man das erst initialisieren muss?

Masterarthur
17.06.2007, 09:27
Initialisieren??? Nicht das ich wüsste. Sonst keiner mehr eine Idee oder einen Tip? Kann mir nicht vorstellen, dass das Problem nur bei mir auftritt.

Gruß
Arthur

stochri
17.06.2007, 17:41
Hallo Arthur,

In der Lib scheint sich ein Fehler eingeschlichen zu haben. Möglicherweise kommt es aber auch zu einem Rechenfehler, weil im Compiler bezügl. Type-Cast etwas geändert wurde und es dadurch zu anderen Rundungen kommt.

Hier mal eine veränderte Version der Funktion "Sound"



/************************************************** *************************
* void sound(uint16_t freq, uint16_t duration_msec, uint8_t amplitude)
*
* use motors as loudspeaker and create a sound
*
* input
* frequency: uint16_t freq
* duration: uint16_t duration_msec
* amplitude: uint8_t amplitude
*
* example: sound(1000, 100, 255);
* 1Khz, 100ms, max. amplitude
*
* last modification:
* Ver. Date Author Comments
* ------- ---------- -------------- ---------------------------------
* sto2 1.09.2006 stochri first version
* sto3 17.6.2007 stochri type cast to remove time duration error
* ------- ---------- -------------- ---------------------------------
*
************************************************** *************************/
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);

}

#define BEEP Sound(1000, 100, 255)



/************************************************** *************************
*
* (c) 2006 stochri
*
************************************************** *************************
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* any later version. *
************************************************** *************************/



Damit sollte es eigentlich gehen. Im Anhang noch ein Zip-File mit Hex-Datei und einem Beispiel.

Gruss,
stochri

Masterarthur
17.06.2007, 19:28
Vielen Dank Storchi,
werde es bei nächster Gelegenheit ausprobieren. Muss mir erstmal Klarheit darüber verschaffen, wie ich mit deinem Pack umzugehen habe. Wenn ich jetzt damit anfange, dann ist wahrscheinlich der Abend gelaufen, weil ich nicht aufhören kann bevor es klappt. Am Compi läüft die Zeit immer so schnell O:)

Gruß
Arthur

Masterarthur
17.06.2007, 20:45
Sorry für das Storchi. Hatte nicht verarbeitet, dass es STOCHRI heissen muss.
Konnte es nicht lassen und habe doch noch etwas gespielt. Der Integer (uint32_t) hat tatsächlich geholfen! Die Soundfunktion funktioniert so. Sollte man nicht jetzt die 2.70 im Download aktualisieren, damit nicht noch mehr Neulinge am Sound hängen bleiben? Es gibt da ja auch noch die Sache mit dem Unterschied der Setup und der ZIP Version bezüglich makelib.

Vielen Dank für die Hilfe.

Gruß
Arthur

ehenkes
17.06.2007, 21:06
Ja, ich denke auch, es ist Zeit für eine Version 2.80, vor allem auch mit Ultraschall. :)

stochri
17.06.2007, 22:19
Tja, ich hoffe, dass Sternthaler oder m.a.r.v.i.n hier mitlesen. Beide haben am meisten an der Lib gearbeitet.

@Arthur
Falls Du ein paar interessante Tonfolgen erzeugst, kannst Du sie ja als Sound-Demo für die neue Lib vorschlagen.

Gruß,
stochri

m.a.r.v.i.n
18.06.2007, 13:53
Hi,

ein Udate der Lib ist schon in Arbeit. Dort werden auch Funktionen für die Ultraschall Erweiterung dabei sein.