Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Теперь ввожу данные из FIO_FLAG_D вот так вот:
for(m=0; m меньше VEC_SIZE; m++) in_temp[m] = (*pFIO_FLAG_D);
Далее по UART'у перекачиваю принятые с FIO_FLAG данные в ПК, и вижу, что на один период сигнала 10кГц всего 300 точек данных.
Это означает, что ввод данных в проц по FIO_FLAG идёт с частотой 3МГц.
Как заставить проц вводить данные с частотой 56МГц.
Да, использование DMA+PPI решит проблему, но ведь в мануале сказано:
"Выводы PFx синхронизируются с тактовым сигналом системы (SCLK). Если программируемый флаг настроен на выход, его состояние может изменяться на каждом такте SCLK.
Когда программируемый флаг настроен на вход, при проектировании устройства следует учитывать возможную задержку между тактовыми сигналами ядра и системы. Изменения состояния выводов PFx обнаруживаются процессором с задержкой в три такта SCLK. Если вывод сконфигурирован в качестве источника прерывания, чувствительного к уровню, между моментами установления активного уровня флага и прерывания процесса выполнения программы существует задержка, по меньшей мере, в четыре такта SCLK. Когда вывод сконфигурирован в качестве источника прерывания, чувствительного к фронту, добавляется дополнительная задержка в один такт SCLK, в результате полная задержка составляет пять тактов SCLK между моментами установления активного уровня флага и прерывания процесса выполнения программы."