Нужно сделать в программе воспроизведение звука выстрела, диной до 0,5 секунд. На микрочиповском форуме дали подсказку на ассмеблере:
Code
; Инициализация модуля CCP ШИМ
BSF STATUS,RP0 ; Выбор банка 1
; movlw .112 ;20мгц / 4 / 44.100
movlw .225 ;20мгц / 4 / 22.050 кгц
movwf PR2
BCF STATUS,RP0 ; Выбор банка 0
movlw b'00000100'
movwf T2CON ;настраиваем TMR2 без предделитителя и выходного делителя
потом по прерыванию от TMR2 делаешь примерно так
Code
;закидываем в ШИМ
rrf INDF,F
rrf INDF,F
movf INDF,W
andlw b'00111111'
movwf CCPR1L
rrf INDF,F
rrf INDF,W
andlw b'00110000'
iorlw b'00001100'
movwf CCP1CON
; А в INDF очередной байт из памяти
У меня ШИМ уже используется для генерации ИК сигнала 36кГц.
Следовательно вопрос, куда мне засунуть этот звук - во внешнюю память а с ней работать по IC2?
Далее взял я звук, сделал HEX файл без не звуковых данных, с помощью программатора записал в внешнюю память.
А как дальше мне использовать эту память в бейсик программе, т.е. как запустить цикл чтения памяти, как определить дину звука. И можно ли как то совместить вышеизложенный код на ассемблере с программой на бейсике.
Если сжимать звук до 8КГц, то его размер составляет 3Кб. Но у меня в программе используется работа ШИМ на частоте 36КГц, что можно сделать, увеличивать качество звука до 36КГц или каждый раз програмно перенастраиваит модуль ШИМ, т.е. нужен ИК сигнал - одни настройки:
Code
PR2 = 139
CCPR1L = 69
CCP1CON = %00001100 ' Select PWM Mode
T2CON = %00000100 ' Timer2 = ON + 1:1 prescale
если звук, то тогда другие, можно ли это делать по многу раз в программе, а не раз в начале как обычно? В программе остался только звук, уже месяц пытаюсь и ничего не получается, скоро головой об стенку биться начну
Добавлено (04.04.2009, 2:10:45)
---------------------------------------------
Видимо непонятно сформулировал вопрос:'(
Вот нарыл в инете программу: BTc Sound Encoder 2.0 Software
http://www.romanblack.com/picsound.htm
Она позволяет (насколько я понимаю буржуйский) преобразовывать wav фалы в формат, который можно проигрывать без использования ШИМ через RC фильтр, который в этой же программе и рассчитывается.
Может кто подскажет:
1. Как файл с перекодированным wav засунуть в программу?
2. Как все таки его воспроизвести, расчитать таймер на 8КГц а дальше? С каких адресов памяти и как воспроизводить биты песни?
Блин, опять больше вопросов, чем ответов . Ну хоть пните кто нибудь в нужном направлении