Ich kenne das Modul, das du verwendest nicht, aber kann es sein, dass man das erst initialisieren muss?
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
Code:#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?
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"
Code:/*************************************************************************** * 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
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
Gruß
Arthur
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
Hi,
ein Udate der Lib ist schon in Arbeit. Dort werden auch Funktionen für die Ultraschall Erweiterung dabei sein.
Lesezeichen