Урок 3. Воспроизводим MP3 : Патчестроение : Форум


 ZEN:
09.08.09, 12:43
 
Код: 
                 push {r6,lr}
        
                LDR     R3, GetSilent
                BLX R3    
                CMP R0, 0     ; проверка на "режим без звука"
                ;если включенно то завершаем функу если нет то идём дальше
                BNE exit


                LDR R0, AudioBook
                LDR     R3, FindBook
                BLX R3    
                 CMP R0, 0     ; проверка на "плейер"
                 ;если включенно то завершаем функу если нет то идём дальше
                 BNE exit        


                 LDR     R0, FM_book
                 LDR R3, FindBook
                 BLX R3    
                 CMP R0, 0     ; проверка на "радио"
                 ;если включенно то завершаем функу если нет то идём дальше
                 BNE exit        
 

                
                 ;здесь мы указываем коталог с файлом
                 ADR     R0, foldeR 
                 ;здесь сам фаил
                 ADR     R1, file
                 ;и воспроизводим
                 LDR     R6, PlayFile
                 BLX     R6

                 
exit:
pop {r6,pc}
                 
                 align 4
GetSilent        DCD 0x454524BC+1  
AudioBook        DCD 0x45425E28+1 
FM_book            DCD 0x455F46CC+1 
FindBook:         DCD 0x45526684+1
 PlayFile  DCD 0x4514935C+1
 foldeR   du  "/usb/otheR/",0 ,0
                 DCB    0
                 DCB    0
 file          du "1.mp3",0


[ Редактировано ZEN в 9.8.09 12:57 ]

[ Редактировано ZEN в 10.8.09 13:04 ]

 Joker XT:
09.08.09, 12:50
 ZEN, апять ты аргумент потерял, ф-ие PlayFileV идёт 3 аргумента, в R2 ещё должна идти громкость

 den_po:
09.08.09, 13:08
 Joker XT, дык у него ж PlayFile а не PlayFileV

 Joker XT:
09.08.09, 13:22
 den_po, дык он уже исправил =))
там PlayFileV =)

 ZEN:
09.08.09, 13:23
 Joker XT, там и был PlayFile прост написанно PlayFileV было

 IronMaster:
09.08.09, 16:32
 ZEN,
у тебя при наступлении условия при котором пойдет переход на exit код упрется в данные -> ребут
ты сохраняешь lr после того как он переписался 3 раза. При каждом bl/blx значени lr обновляется.
Соответственно чтоб исправить убирай в середине push {lr}, pop {pc}, а в начало добавляй push {r6,lr}, в конец pop {r6,pc}
Не вижу смысла сохранять r4, так как ты его не трогаешь, а вот r6 не помешает сохранить и восстановить.

 Grinvich11:
10.11.09, 15:18
 Как выключить мелодию до окончания воспроизведения?

 KrasH:
10.11.09, 16:22
 Grinvich11, в личку глянь

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4211

© 2005-2018 supertrubka.org