Pracuję nad osobistym projektem. Chcę transmitować niektóre dane za pomocą starego radia krótkofalarskiego.szybsza alternatywa dla sygnału dźwiękowego Windows.h()
Mój pierwszy projekt aplikacja działa tak:
skonstruować jeden bajt z 4 "sygnały":
5000 Hz oznacza "00"
6kHz oznacza "01"
7khz oznacza "10"
8kHz oznacza „11”
9kHz oznacza taki sam jak poprzedni
potem połączyć te 4 par bitów razem i ponownie rozpocząć następny.
demodulacji działa świetnie i powinny być wystarczająco szybki, ale mam problem z generowaniem dźwięku ... to powoli ...
Oto mój kod debug:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
Beep(5000, 100);
Beep(6000, 100);
Beep(7000, 100);
Beep(8000, 100);
Beep(9000, 100);
return 0;
}
I „m spodziewając 5 sygnałów dźwiękowych, blisko siebie, 100ms każdy ale oto co mam (na górze, pięć„100ms dźwięki(), a na dole, pięć «20ms dźwięki()»:
Jak widać , dostaję 50ms dźwięków po 75ms pauzy, kiedy chcę 100 ms dźwięków i 10 ms dźwięków, po których następuje 100 ms przerwy, gdy chcę wydać dźwięk o długości 20 ms.
Czy jest coś szybszego i dokładniejszego niż Beep() dla Windows? (coś, co działa z Linuksem, byłoby jeszcze lepsze, ponieważ ostatnia aplikacja powinna działać na raspberry pi).
Dostałbym większą użyteczną przepustowość z dźwiękami 3ms (.... 41 bajtów/sek ... ., który jest więcej niż wystarczająco dla mojej aplikacji)
Compiler: g ++ (MinGW)
Os: siedem 64Bits
'Beep()' jest zdecydowanie źle narzędziem do tego zadania. W żaden sposób nie został zaprojektowany tak, by był precyzyjny.Będziesz musiał wygenerować dane przebiegu i zapisać je na karcie dźwiękowej (lub jej odpowiedniku), która jest z natury specyficzna dla platformy. Inną opcją jest użycie mikrokontrolera, który moduluje sygnał i dołącza go do komputera (co ułatwiłoby portowanie kodu). –
Będziesz musiał wybrać jeden system operacyjny. Rozwiązanie, którego szukasz w systemie Windows, prawdopodobnie nie będzie takie samo na pi. –
@In silico, użycie mikrokontrolera będzie ostatnim rozwiązaniem ressortu (jestem dość komfortowy dla mikrokontrolerów μC i mam niezbędne narzędzia do wytrawiania swoich własnych płyt pcb, ale wolałbym jechać bez dodatkowego sprzętu) – srsbsns