olej system plikow sformatuj karte i wrzuc calego wave po kolei jesli bedzie to jedyny plik lub jesli bedziesz je nagrywal po kolei, to sie ustawia jeden za drugim, i mozesz je spokojnie odczytac, pomijajac naglowek i wyslac na DAC jesli chodzi o FAT, to jest troche implementacji na sieci, nie sadze zeby przy tej predkosci odczytu specjalnie obciazaly procesor - odczytujesz i tak blokami do pamieci, a potem w przerwaniu wysylasz na DACa...Tak wiec z funkcji FAT korzytasz tylko przy adresowaniu nowego bloku do odczytu. Mozesz sobie uproscic zadanie i jesli jestes pewien ze pliki byly wrzucane po kolei to uzyc funkcj iFAT tylko do odnalezienia poczatku zadanego pliku. W przypadku pamieci o duuzej pojemnosci moze pojawic sie inny problem, a mianowicie ze od nowosci takowa moze posiadac uskodzone sektory..
Re: Dzwięk z ATmega+SD - prośba o oszacowanie
May 03, 2007
Last reply: 19 years ago
6 Replies
To jedna z opcji. Komplikuje ona jednak życie przy składaniu komunikatów głosowych. Chodzi o to, że komunikaty będą tworzone przez usera końcowego. Najlepsza opcja to wepchanie tam zwyklych plików. Jesli się na razie nie uda to po prostu podziele kartę na sekcje i napiszę program narzędziowy jednak to marne rozwiązanie.
To nie problem, ja się boje, że są takie "chwile" w działaniu fs gdzie potrzeba dośc sporo się napracować aby odczytać nastepny cluster. I może się nie wyrobić mi procedura, tzn nie dostarczyć danych na czas i będzie dziura.
No właśnie, to jest krytyczny moment.
Nie przypuszczam żebym przekroczył 32MB.
Ja mam zamiar zrobić to tak: MMC, SRAM 64KB, DAC TLC7524CN (DAC+rejestr zatrzaskowy)
Licznik generuje przerwanie 8000 razy na sekundę (więcej mi nie trzeba). Co przerwanie wysyłam bajt na DAC z tablicy. Tablica może być cykliczna + zmienna aktualna pozycja + koniec nagrania(by wiedział gdzie się zatrzymać) Poza przerwaniem wczytuje słowa po zakończeniu odtwarzania poprzedniego, lub na bierząco uzupełniam bufor jeśli muzyka ma być ciągła.
W duzym uproszczeniu będzie wyglądać to tak. Dopiero zabieram się do tago, więc doswiadczeniami nie mam możliwości się jeszcze podzielić.
Pozdrawiam
Hmmm u mnie podobnie kombinuje ale problem jest z wypełnianiem tej tablicy. Jeśli masz ciągłą strukturę danych w pamięci to nie ma problemu. Gorzej jak chcesz mieć fs bez defragmentacji gdzie co chwile trzeba zmieniać adres klastra. Nie wiem na ile w tym miejscu dostanę w plecy czasowo.
Spinacz biurowy, Sebastian Bialy snipped-for-privacy@poczta.onet.pl>!
Podwójne buforowanie powinno załatwić.
- Wczytujesz dwa bufory.
- W przerwaniu wysyłasz.
- Jeżeli bufor się skończy to zaczynasz grać z drugiego i ustawiasz flagę, co by sobie główna pętla doczytała dane do wyczerpanego bufora.
Spinacz biurowy, "Piotr \"PitLab\" Laskowski" snipped-for-privacy@pulapka.wp.pl>!
Zakładając 44100 Hz i 8 bitów, będzie niecałe 12 MHz, więc powinno się niby dać... Ale już przy 10 bitach będzie 4x większa częstotliwość... Słabo to widzę. Albo jakość albo prostota.
Sebastian Bialy snipped-for-privacy@poczta.onet.pl> napisał(a):
możesz pójść na łatwiznę... Po wykryciu zmiany karty defragmentuj ją.
32MB to nie będą wieki, pesymistycznie minutka, a komunikatów nie zmienia się co wczoraj, nie?Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required