|
Програмная часть: MP3-декодер VS1011Основные изменения коснулись электрического интерфейса декодера, хотя есть и ряд программных отличий. Например, теперь требуется проверять DREQ даже перед обменом по шине SCI, а также переводить в состояние "1" сигнал xCS после любой транзакции по шине SCI. Новые возможности декодера, такие как воспроизведение WAV-файлов, stream-mode не используются. ИнициализацияВозможно, немного изменились времена задержек; команды аппаратного сброса теперь находятся в модуле VLSI.asm.inc. Параметры воспроизведенияНовый декодер потребовал разделения процедуры vlsi_SetTones на три: vlsi_SetTones, vlsi_GetState и vlsi_HDAT_print. Первая устанавливает громкость, тембр и управляющие биты (SM_DIFF - инверсия левого), вторая - возвращает изменяющиеся характеристики воспроизводимого файла (текущее время), третья - общие (неизменные во времени) характеристики файла (частота семплирования, признак моно/стерео и т.д.), а также битрейт. Такое разделение потребовалось по той причине, что vs1011 при записи в регистр громкости воспроизводит тихий, но заметный на слух, щелчок. Поэтому теперь vlsi_SetTones вызывается только при нажатии связанных с ней клавиш и во время открытия файла. VS1011 имеет эквалайзер, однако функции управления им (кроме непосредственно программирования регистров декодера процедурой vlsi_SetTones) размещаются в модуле режима воспроизведения mp3-файлов. |