Ответ на оригинальный вопрос:
Запрашиваемая вами «частота красного цвета в битах» составляет от 480 до 405 ТГц, поэтому в битах это от 111100000 до 110010101. Но вы также сказали «определено в нанометрах», то есть от 630 до 740 нм, то есть от 1001110110 до 1011100100 в двоичном Если вы хотите управлять громкоговорителем с помощью сигнала, вам потребуется либо образец звукового сигнала, либо микросхема синтеза речи. В любом случае, двоичные значения, которые я дал вам, не имеют ничего общего со звуком слова «красный», для которого понадобится намного больше битов для представления любого слышимого звука (например, минимум 0,5 секунды при PCM 16 кбит / с будет 8 кбит / с). = 1 кбайт).
Другим способом представления цвета в двоичном виде является система RGB, где красный будет 0xFF0000, а в двоичном виде - 111111110000000000000000.
Ответ на вопрос о том, как получить биты в wav-файле
Сначала мы должны определить, где хранится файл WAV. Он может быть сохранен в виде константного массива в PIC или на внешнем запоминающем устройстве, где вы должны прочитать его по какой-либо последовательной или параллельной шине. Поскольку PIC18F4550 имеет 32 Кбайт флэш-памяти, если ваша программа довольно мала, может быть достаточно места для 3 файлов wav.
Затем мы должны определить, как оборудование будет воспроизводить звук. Похоже, вы пытаетесь отправить значение байта из битового порта, сдвигая его. Но чтобы сделать это правильно, нам нужно больше узнать об оборудовании, потому что вы не можете подключить динамик к битовому порту и ожидать звука (не без дальнейшей обработки сигнала PCM в любом случае - вы пытаетесь использовать 1 битный ЦАП дизайн? Если да, то здесь есть дополнительные примечания , но это довольно амбициозно).
Кроме того, значения битов в файле wav будут получены путем получения каждой выборки (8 бит?) В файле и сдвига значения маски 0x01 с помощью операции И для определения, какие биты были установлены.