Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Sound
Masterarthur
15.06.2007, 17: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;
}
Ich kenne das Modul, das du verwendest nicht, aber kann es sein, dass man das erst initialisieren muss?
Masterarthur
17.06.2007, 10: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
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, 20: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, 21: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
Ja, ich denke auch, es ist Zeit für eine Version 2.80, vor allem auch mit Ultraschall. :)
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, 14:53
Hi,
ein Udate der Lib ist schon in Arbeit. Dort werden auch Funktionen für die Ultraschall Erweiterung dabei sein.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.