У кого есть Arduino Due и частотомер

rekrut007
Offline
Зарегистрирован: 19.10.2014

Добрый вечер, уважаемые форумчане. Изучаю arduino due. Возник вопрос сравнить быстродействие управления выходами с помощью функции digitalWrite и через регистры. У кого есть эта плата и частотомер, можете сравнить частоты сигнала на выводе платы в обоих случаях. Скетч для управления через регистры прилагаю. Проверил работает. Диод на выводе 13 мигает.

void setup() 
{
   PIOB->PIO_OER = 1 << 27;       // PIO Controller Output Enable Register.  Enables the output on the I/O line. Запись 1 устанавливает соответствующий вывод как выход
}

void loop()
{
  PIOB->PIO_CODR = 1 << 27;       // PIO Controller Clear Output Data Register.  Clears the data to be driven on the I/O line. Запись 1 устанавливает 0 на соответствующем выводе, который сконфигурирован как выход. 
  PIOB->PIO_SODR = 1 << 27;       // PIO Controller Set Output Data Register. Sets the data to be driven on the I/O line. Запись 1 устанавливает 1 на соответствующем выводе, который сконфигурирован как выход.
} 

Если светодиод дает помеху, то 27 можно заменить на 25, тогда на плате будет вывод 2. Я думаю, что и другим форумчанам будет интересен результат.

 

rekrut007
Offline
Зарегистрирован: 19.10.2014

Прошу извинить. Забыл уточнить, что приведенный скетч управляет выводом 13 на плате.

wildwhiteash
Offline
Зарегистрирован: 29.06.2015

в районе 20 МГц был сигнал похожий на прямоугольник

выше - хуже, верхний порог не помню, давно было

тут скорее не частотомер а осциллограф нужен

wildwhiteash
Offline
Зарегистрирован: 29.06.2015

а вообще все эти содры-модры очень полезны для синхронного вывода по нескольким ногам порта одновременно

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для сравнения производительности команд внешний частотомер не нужен.

Достаточно внутреннего таймера.