ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
4 июля
122931 Топик полностью
cvv (13.06.2008 11:09, просмотров: 181) ответил 580BM80 на Вариант весьма коряв. Первое, данный цикл формирует нестабильный период частоты дискретизации по причине различного времени выполнения на разных
Данный цикл имеет одинаковое число инструкций на каждой итерации что в частности достигается полным запрещением прерываний. 
частота дискретизации не может быть явно задано программистом, а получается, такая, какая получается (методом подгона)
При использовании случайного чтения нереально воспроизводить семплы с частотой дискретизации более 8кгц, так как:
  • во первых 90% времени между выборками тратится на считывание eeprom.
  • во вторых это не требуется
  • Так что программисту здесь выставлять нечего. Поэтому писать поддержку последовательного чтения не вижу смысла.
    Лучше всего использовать не цикл, а процедуру в прерывании таймера, настроенного на вызов с ЧД. При этом первым делом выводить в порт сэмпл считанный и сохраненный, в предыдущем вызове, а затем считывать и сохранять в переменной новый,
    я думал на тему реализовать это все на таймере но потом решил что увеличение геммора с прерыванием не оправдает незначительное уменьшение джиттера.
    wbr Vitaly