Я пытаюсь воспроизвести тон, изменяя что-то на ЖК-дисплее. Я искал вокруг и пробовал protothreads, но кажется, что задержка все еще блокирует программу. Я также попытался удалить задержку вообще, но она пропустила все, кроме последней заметки. Есть ли способ играть тон без задержки? (Миллис возможно?)Arduino - Тон без задержки
Пример последовательности тона:
//Beats per Minute
#define BPM 250
//Constants, try not to touch, touch anyways.
#define Q 60000/BPM //Quarter note
#define W 4*Q //Whole note
#define H 2*Q //Half note
#define E Q/2 //Eigth note
#define S Q/4 //Sixteenth note
void toneFunction()
{
tone(tonePin,C5,Q);
delay(1+W);
tone(tonePin,C5,Q);
delay(1+W);
tone(tonePin,C5,Q);
delay(1+W);
tone(tonePin,C6,W);
}
Вам нужно 4 звуковых сигнала (beeeep beeeep beeeep beep) справа? Что означает 1 + W в функции задержки? Аргумент функции задержки - миллисекунда. –
@AdisakAnusornsrirung 1 + W = целая нота плюс 1 миллисекунда. – pandalion98
Задержка означает остановку воспроизведения тона? –