ΣSigmaStudio English

Это старая редакция документа!


Toggle Counter


Ячейка Toggle Counter подсчитывает количество фронтов, обнаруженных на её входном пине, и выводит счётчик как целочисленное значение 28.0. Детектирование переключения может быть настроено на обнаружение нарастающих или спадающих фронтов на входе.GUI IconToggle Counter

Входные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Detection Inputinteger or decimal - controlВход управляющего сигнала, который детектируется счётчиком переключений
Pin 1: Interface read inputother - interface registerПодключён к регистру программного интерфейса — считывает последнее значение счётчика при запуске

Выходные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Toggle countinteger - controlСчётчик переключений. Увеличивается на единицу каждый раз, когда на входе обнаруживается новый фронт.
Pin 1: Interface write outputother - interface registerПодключён к регистру программного интерфейса — записывает последнее значение счётчика

Элементы управления GUI

GUI Control NameDefault ValueRangeFunction Description
N/A33 to 100Задаёт значение счётчика переключений, при котором счётчик сбрасывается в ноль

Информация о параметрах DSP

GUI Control NameCompiler NameFunction Description
N/AToggleCountAlg1maxМаксимальное значение, которого может достичь счётчик. Когда счётчик превышает это значение, он сбрасывается в ноль.

Описание алгоритма

Счётчик переключений увеличивает внутренний счётчик каждый раз, когда на входе обнаруживается фронт. Существуют два алгоритма: один для обнаружения и подсчёта нарастающих фронтов, и один для обнаружения и подсчёта спадающих фронтов. В этом описании алгоритм обнаружения нарастающих фронтов используется в качестве модели.

Счётчик начинает с нуля при запуске программы. Каждый раз, когда на входе обнаруживается нарастающий фронт — в любом числовом формате — счётчик увеличивается. После того как счётчик превышает максимальное значение счётчика (которое может быть настроено в GUI), он сбрасывается в ноль и возобновляет подсчёт. Пример ниже показывает счётчик переключений с обнаружением нарастающих фронтов и максимальным значением счётчика 9. Обратите внимание, что поскольку подсчёт начинается с нуля, результирующий выходной сигнал в виде «лестницы» повторяется каждые 10 нарастающих фронтов.
Описание алгоритма
В примере ниже максимальное значение счётчика установлено на 100. Счётчик сбросится после того, как на входе будет обнаружено 101 нарастающих фронтов.
Описание алгоритма
Детектирование фронтов выполняется по выборкам. Если текущая выборка превышает предыдущую, она будет обработана как нарастающий фронт, независимо от того, является ли входной сигнал реальным фронтом или нет.

Пример ниже иллюстрирует это. Это не рекомендуется для реального применения алгоритма. В реальных приложениях входные сигналы должны принимать только два значения, например, логические переключатели или прямоугольные волны.
Описание алгоритма

Пример

Этот пример показывает Toggle Counter, подсчитывающий нарастающие фронты прямоугольной волны 50 Гц. Обратите внимание, что счётчик начинается с нуля, поэтому в этом случае счётчик будет идти от 0 до 99, сбрасываясь каждые 100 нарастающих фронтов. Поскольку в секунду происходит 50 нарастающих фронтов, Toggle Counter будет сбрасываться в ноль каждые 2 секунды.
Пример
Другие ячейки, используемые в этом примере — Square Wave, Interface Read, Interface Write, DSP ReadBack

Детали алгоритма

Toolbox PathGPIO Conditioning - PushButton - Index Counter - Rising Edge / Falling Edge - Toggle Counter
Cores SupportedADAU144x
ADAU1701
ADAU1761
ADAU1781
“Grow Algorithm” Supportedno
“Add Algorithm” Supportedno
Subroutine/Loop Basedno
Program RAM14
Data RAM4
Parameter RAM1

Toggle Counter в SigmaStudio: настройка и параметры

Toggle Counter — это узел категории GPIO Conditioning в среде SigmaStudio, предназначенный для подсчёта количества фронтов сигнала, поступающих на входной пин. Алгоритм относится к классу счётчиков и формирует на выходе целочисленное значение в формате 28.0, которое может быть использовано для управления другими блоками в сигнальной цепочке или для чтения через программный интерфейс. Принцип работы Toggle Counter основан на детектировании переключений по выборкам. Пользователь может настроить ячейку на обнаружение либо нарастающих, либо спадающих фронтов. Внутренний счётчик увеличивается на единицу каждый раз, когда на входе обнаруживается новый фронт. Важно понимать, что детектирование выполняется поканально: если текущая выборка превышает предыдущую, она обрабатывается как нарастающий фронт, даже если фактически это не так. Поэтому для корректной работы в реальных приложениях рекомендуется подавать на вход сигналы только с двумя уровнями, например, от логических переключателей или прямоугольных волн. Входной пин Detection Input принимает управляющий сигнал в целочисленном или десятичном формате. Дополнительный интерфейсный вход Interface read подключается к регистру программного интерфейса и позволяет считать последнее значение счётчика при запуске. Выходной пин Toggle count передаёт текущее значение счётчика, а интерфейсный выход Interface write используется для записи значения в регистр. Настройка Toggle Counter в проекте SigmaStudio выполняется через GUI-элемент, который задаёт максимальное значение счётчика.