Właśnie znalazłem taki oto programik służący do odtwarzania plików wav z karty mmc na atmedze32.Moja prośba jest następująca: czy ktoś mógł by podany niżej program mi bardzo jasno wyjaśnić. Chodzi mi o to żebym wiedział co jest po co napisane i jak można to zmienić według własnych potrzeb(np: w którym miejscu zmienia się nazwę odtwarzanego pliku itp). $regfile = "m16def.dat" $crystal = 11059200 ' Config Pinc.4 = Input Pause Alias Pinc.4 '------------------------------- Config Pinc.5 = Input Kelid Alias Pinc.5 '-------------------------------- Config Pinc.6 = Input Kelid2 Alias Pinc.6 '------------------------------- Config Pinb.4 = Output Config Pind.3 = Output Set Portd.3 '--------------------------------- Config Debounce = 20 '------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1 Pwm1a = 255 Pwm1b = 255 'Constants 'warter are FAM & Behnam Const Msbl = 0 Const Msbh = 1 Const Dly = 2 Const Bits8 = 8 Const Bits16 = 16 Const Bits32 = 32 'Dim Dim Dat As Byte Dim Resp As Byte Dim I As Word Dim Addr As Long Dim Adres As Long Dim Tanzim As Byte Dim Ali As Byte Dim Test As Long Dim Copy As Long Dim Shomare As Long Dim Hassan As Byte 'Aliases Cs Alias Portb.0 Mosi Alias Portb.1 Clk Alias Portb.3 Miso Alias Pinb.2 'Declarations Declare Sub Minit Declare Sub Mread(byval Addr As Long ) 'Configs Config Portb.2 = Output Config Portb.0 = Output Config Portb.3 = Output Config Pinb.1 = Input Waitms 300 Config Spi = Soft , Din = Pinb.2 , Dout = Portb.1 , Ss = Portb.0 , Clock = Portb.3 Enable Interrupts Enable Spi Spiinit '******** MAIN PROGRAM ************* Reset Portd.3 Main: 'Initialize the MMCC Minit Adres = 1048576 Ali = 0 Reset Portd.3 Inja: Toggle Portb.4 Mread Adres Debounce Pause , 1 , Stop_play , Sub Debounce Kelid2 , 1 , Jolo2 , Sub Debounce Kelid , 1 , Jolo , Sub Adres = Adres + 512 'baraye in ke ta dastgah roshan shod peygham 1 ra ped konad '----------------------------------------------------------------- If Ali = 0 Then Adres = Adres + 5120000 Test = 512 * 7800 'Test = 512 * 8000 Adres = Adres - Test Ali = 1 Test = Adres End If '------------------------------------------------------------------- Goto Inja Xloop: Set Cs Shiftout Mosi , Clk , Dat , Msbl Endloop: Goto Endloop End 'end program '***************************** END OF PROGRAM ********************************** '======= SUB ROUTINES AND FUNCTIONS ======= 'warter are FAM & Behnam '*** INITIALIZATION OF MMC *** Sub Minit Set Cs Dat = &HFF For I = 1 To 10 Shiftout Mosi , Clk , Dat , Msbl Next I Resp = 255 Reset Cs Cmd0: Dat = &H40 Shiftout Mosi , Clk , Dat , Msbl Addr = &H00000000 Shiftout Mosi , Clk , Addr , Msbl Dat = &H95 Shiftout Mosi , Clk , Dat , Msbl While Resp <> &H01 Shiftin Miso , Clk , Resp , Msbl Wend Set Cs Waitms 50 Reset Cs Dat = &HFF Cmd1: While Resp <> &H00 'warter are FAM & Behnam Set Cs Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Reset Cs Dat = &H41 Shiftout Mosi , Clk , Dat , Msbl Addr = 0 Shiftout Mosi , Clk , Addr , Msbl Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Wend Dat = &HFF Set Cs End Sub 'warter are FAM & Behnam '**** READ routine assumes ADDR uses Status subroutine ***** Sub Mread(byval Addr As Long) Set Cs Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Reset Cs Dat = &H51 Shiftout Mosi , Clk , Dat , Msbl Shiftout Mosi , Clk , Addr , Msbl Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl While Resp <> 0 Shiftin Miso , Clk , Resp , Msbl Wend While Resp <> &HFE Shiftin Miso , Clk , Resp , Msbl Wend For I = 1 To 512 Shiftin Miso , Clk , Resp , Msbl Pwm1a = Resp Pwm1b = Resp Waitus 29 'Waitus 3 'ÓŃÚĘ Next I Shiftin Miso , Clk , Resp , Msbl Shiftin Miso , Clk , Resp , Msbl Set Cs 'warter are FAM & Behnam End Sub Jolo: Adres = Adres + 153600 For Shomare = 1 To 500 If Kelid = 0 Then Return Waitms 1 Next Adres = Adres + 972800 Return Jolo2: Adres = Adres - 153600 For Shomare = 1 To 500 If Kelid2 = 0 Then Return Waitms 1 Next Adres = Adres - 972800 If Adres < Test Then Adres = Test Return Stop_play: Set Portd.3 Pwm1a = 255 Pwm1b = 255 Copy = Adres Do Debounce Pause , 1 , Play Loop Play: Reset Portd.3 Adres = Copy Return Taki program napewno przyda się nie tylko mi ale i innym użytkownikom forum.
|
|||
Re: Odtwarzacz
Wygląda na to że plik odczytywany jest po adresie z karty.... nie ma tutaj systemu plików, żeby mówić o nazwie..... Z kartami MC ani SD nie miałem jeszcze do czynienia więc nie jestem znawcą. To tylko pierwsze spostrzeżenie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Drógi program
Znalazłem jeszcze taki program, może coś takiego da się rozgryźć ; )
Program pochodzi z tej strony http://en.pudn.com/downloads154/sourcecode/others/detail684806_en.html
A tak przy okazji...
Kupiłem nową atmege32 montuję do programatora i wszystko się ładnie i sprawnie programuje.Problem w tym że po zaprogramowaniu at wogule nic nie reaguje!Myślałem że napisałem zły program i w ramach testu napisałem i wgrałem coś takiego:
Gdzie portb.0 to dioda led, która miała migać i dalej nic!
Może pomieszałem coś w fuse bitach:
Aaa i jeszcze muszę dodać że przez kond. i opornik włączony jest rezonator wewnętrzny.
Re: M32
Program nie ma konfiguracji portów. Ile razy bym nie pisał to i tak zawsze ktoś nie wie. Wszystkie porty nawet nieużywane powinny mieć konfiguracje typu i wartość początkową. Popatrz do dowolnego mojego programu, wszystkie to mają
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Rzeczywiście
Rzeczywiście, mirley miałeś racje z tymi ustawieniami pinów.Już wszystko chodzi.Tylko co zdobić z tą nieszczęsną mmc?
nowy program
Znalazłem jeszcze jeden program który wydaje się łatwiejszy. Proszę kogoś o podpowiedź jak skonfigurować na własne potrzeby?
Link do strony z programem: http://www.sfcompiler.co.uk/wiki/pmwiki.php?n=SwordfishUser.SDMMCWavPlayer