Производительность UNO

Тема в разделе "Arduino & Shields", создана пользователем iglooshtosser, 12 май 2015.

  1. iglooshtosser

    iglooshtosser Гик

    Оказалось, что производительность ардуины достаточна (с приличным запасом) для вывода информации на девяти (sic!) разрядый семисегментный индикатор динамически через один сдвиговый регистр.
    Нашел в "хламе" старенький алс318а. И решил проверить.
    Пишу просто поделиться щенячим восторгом.
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    а чего тут необычного? Это всего лишь оперирование 9 х 7 + 8 = 71 элементами в памяти.
    Даже простенький ЖК от NOKIA5110 это 84 x 48 = 4032 элемента - скорости хватает с избытком.
     
  3. Megakoteyka

    Megakoteyka Оракул Модератор

    16 МГц при условии грамотного кода может много на что хватить.
     
  4. iglooshtosser

    iglooshtosser Гик

    Дело тут не в объеме памяти. Он выводит 9 чисел ПОСЛЕДОВАТЕЛЬНО. Я потому и написал про один сдвиговый регистр. Меня удивило то, что вся операция вывода (последовательно, опять же) занимает так мало времени. что выводятся 9 чисел и ничего не мерцает (визуально).
     
  5. iglooshtosser

    iglooshtosser Гик

    Видите ли, когда пишешь на "языке ардуино", то постоянно вызываешь библиотечные функции. И черт его знает сколько времени они выполняются. Та же самая shiftout, как часто она дергает пины?... А она их дергает прямо записывая в порт или через digitalWrite?... Ответы на эти вопросы в исходниках библиотек, на данном этапе я в них не лез. А чистая С-шная оперрация записи в порт выполняется за два такта или за 4 или...? В общем технологических вопросов много.

    Мерить опытным путем (типа мигать диодом через каждые 1000 переключений, а потом с секундомером засекать частоту мигания (частотометра или осцилографа у меня нет)) очень скучно. А использование delay и вывода в com-порт само слишком влияет на измерения. :)
     
    Последнее редактирование: 13 май 2015
  6. Megakoteyka

    Megakoteyka Оракул Модератор

    Не путайте язык и библиотеку. Ардуино программируется на самом обыкновенном С++, библиотеку при этом можно и не использовать.
    Насчет скорости дерганья пинов есть один нюанс. Можно дергать пины с максимальной частотой, но не факт, что другое устройство успеет среагировать. Иногда приходится специально вставлять задержки между переключениями пинов, иначе ответная железка просто не понимает чего от нее хотят. Я с таким сталкиваюсь постоянно, только не с ардуино, а с другим камнем и другой периферией.
    Чтобы выжать из железа максимум, нужно в даташите найти временные диаграммы сигналов и подгонять код под времена, которые там указаны. Если устройство должно работать в большом диапазоне температур, полезно минимальные интервалы увеличить раза в полтора.
     
  7. iglooshtosser

    iglooshtosser Гик

    Я и не путаю. Кавычки там неспроста :)
    А что до всего остального, то я это понимаю, но не зная конкретных значений, ожидал что вся эта библиотечная "машинерия" работает сильно медленнее. А то - О! :) Об этом мой исходный пост.
     
  8. Megakoteyka

    Megakoteyka Оракул Модератор