Отдельный поток для звука
- Войдите на сайт для отправки комментариев
Втр, 02/10/2012 - 20:45
Есть код всякий (ожидание команд по USB), но хочу чтоб в фоне выдавался независимо звук
звук генеруется кодом, и не меняется при выполнении другого основного кода,
не хочется отдельный генератор делать...у меня мега, оригинальная
void loop()
{
PIEZO_ON;
delayMicroseconds(100);
PIEZO_OFF;
delayMicroseconds(100);
}
При других языках было бы не что подобное
код инициализации
CreateThread (@beep.... - подпрограмма генерации звука
основной код со своим loop
1. Смотрим прикрепленные ветки на форуме про то как правильно всталять код/картинки.
2. Забываем про многопоточность. Вопрос не в языке, а в архитектуре самого процессора. Настоящая "одновременность" возможна только для задачь имеющих "железную реализацию" (генерация PWM и т.п.)
3. Забываем про использование delay() и всего подобного что может "останавливать основной (и единственный) поток. В разделе программирования смотрим пример "мигаем светодиодом без delay()". Любые "долгие действия" делаем только вычисляя/запоминая временные интервалы и проверяя "настало пора что-то делать или нет"
4. Гуглим работу с таймерами на Arduino/AVR. Наиболее близкое, идеологически к потокам, но... не более чем "близкое". И "вникать в железо" - таки прийдется.
5. Прежде чем изобретать велосипед - смотрим какие уже существуют либы для ардуины. Хотя-бы наиболее популярно-официальные http://arduino.cc/en/Reference/Libraries Помоему там можно найти готовое решени вашей задачи.
спасибо,
жалко однозадачный процессор, как Z80, но там хоть эмуляция была про int
придется железный делать таймер...
спасибо,
жалко однозадачный процессор, как Z80, но там хоть эмуляция была про int
Ну дык одного же класса :) Родственники. А "эмуляции" - так и тут в полный рост (хотя "общего решения" - нет. в каждом случае смотреть как лучше это сделать).
придется железный делать таймер...
Вы явно не прочитали все пункты до конца .
спасибо,
жалко однозадачный процессор, как Z80, но там хоть эмуляция была про int
придется железный делать таймер...
Ну Вы чё? Учите матчасть! Функция тоне/нотоне
а tone интересная штука на счет ШИМа, я уж думал придется в код вставки разбрасывать on, off c выверкой исполнения между ними...
я уж думал придется в код вставки разбрасывать on, off c выверкой исполнения между ними...
Ну я же вам ссылку на библиотеки давал. Там в разделе Audio and Waveforms всего две библиотеки. Одна для анализа входящей частоты, другая - та самая Tone.
А "расбрасывать с выверкой" - инетерестно с учебных целях.