Это старая редакция документа!
Toggle Counter
Входные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Detection Input | integer or decimal - control | Вход управляющего сигнала, который детектируется счётчиком переключений |
| Pin 1: Interface read input | other - interface register | Подключён к регистру программного интерфейса — считывает последнее значение счётчика при запуске |
Выходные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Toggle count | integer - control | Счётчик переключений. Увеличивается на единицу каждый раз, когда на входе обнаруживается новый фронт. |
| Pin 1: Interface write output | other - interface register | Подключён к регистру программного интерфейса — записывает последнее значение счётчика |
Элементы управления GUI
| GUI Control Name | Default Value | Range | Function Description |
|---|---|---|---|
| N/A | 3 | 3 to 100 | Задаёт значение счётчика переключений, при котором счётчик сбрасывается в ноль |
Информация о параметрах DSP
| GUI Control Name | Compiler Name | Function Description |
|---|---|---|
| N/A | ToggleCountAlg1max | Максимальное значение, которого может достичь счётчик. Когда счётчик превышает это значение, он сбрасывается в ноль. |
Описание алгоритма
Счётчик переключений увеличивает внутренний счётчик каждый раз, когда на входе обнаруживается фронт. Существуют два алгоритма: один для обнаружения и подсчёта нарастающих фронтов, и один для обнаружения и подсчёта спадающих фронтов. В этом описании алгоритм обнаружения нарастающих фронтов используется в качестве модели.
Счётчик начинает с нуля при запуске программы. Каждый раз, когда на входе обнаруживается нарастающий фронт — в любом числовом формате — счётчик увеличивается. После того как счётчик превышает максимальное значение счётчика (которое может быть настроено в GUI), он сбрасывается в ноль и возобновляет подсчёт. Пример ниже показывает счётчик переключений с обнаружением нарастающих фронтов и максимальным значением счётчика 9. Обратите внимание, что поскольку подсчёт начинается с нуля, результирующий выходной сигнал в виде «лестницы» повторяется каждые 10 нарастающих фронтов.
В примере ниже максимальное значение счётчика установлено на 100. Счётчик сбросится после того, как на входе будет обнаружено 101 нарастающих фронтов.
Детектирование фронтов выполняется по выборкам. Если текущая выборка превышает предыдущую, она будет обработана как нарастающий фронт, независимо от того, является ли входной сигнал реальным фронтом или нет.
Пример ниже иллюстрирует это. Это не рекомендуется для реального применения алгоритма. В реальных приложениях входные сигналы должны принимать только два значения, например, логические переключатели или прямоугольные волны.
Пример
Этот пример показывает Toggle Counter, подсчитывающий нарастающие фронты прямоугольной волны 50 Гц. Обратите внимание, что счётчик начинается с нуля, поэтому в этом случае счётчик будет идти от 0 до 99, сбрасываясь каждые 100 нарастающих фронтов. Поскольку в секунду происходит 50 нарастающих фронтов, Toggle Counter будет сбрасываться в ноль каждые 2 секунды.
Другие ячейки, используемые в этом примере — Square Wave, Interface Read, Interface Write, DSP ReadBack
Детали алгоритма
| Toolbox Path | GPIO Conditioning - PushButton - Index Counter - Rising Edge / Falling Edge - Toggle Counter |
| Cores Supported | ADAU144x ADAU1701 ADAU1761 ADAU1781 |
| “Grow Algorithm” Supported | no |
| “Add Algorithm” Supported | no |
| Subroutine/Loop Based | no |
| Program RAM | 14 |
| Data RAM | 4 |
| Parameter RAM | 1 |