проблема с функцией tone
- Войдите на сайт для отправки комментариев
Пнд, 29/05/2017 - 21:05
Здраствуйте, проблема следующая - нет необходимой точности частоты сигнала, точнее при задании частоты например 20000 Гц, все хорошо, если задать 20001, 20002 и так далее до 20010 всегда генерируется 20000 Гц, а потом скачком переходит на 20010 Гц. С чем это связано? И есть ли пути обхода?
semaawp, частота рассчитывается путём деления тактовой частоты МК на целочисленный делитель и ещё раз на два. Что б не делить на два возьмём частоту 8МГц. К примеру если мы делим 8000000 на 400 то получим ровно 20000 Герц. Следущий делитель 399. 8МГц/399 =20050 Т.е. чем выше частота тем крупнее будет шаг. Путь обхода один -использовать DDS синтез. Но он займёт все ресурсы МК, т.е. ничего другого МК делать не сможет.
Спасибо за доходчивый ответ)) значит на более низких частотах и погрешность меньше будет?
То есть выходит что в районе от 31 гц, до 1 с чемто кгц погрешность должна исчезнуть?
semaawp, на частотах до 3кГц погрешность будет менее 1Герца.
Благодарю, такая погрешность меня вполне удовлетворяет))
И еще у меня вопрос про дефайны, разумно ли заменить глобальные константы на дефайны? Или есть свои ньюансы?