Свежие обсуждения
Микроконтроллеры

Фрагмент кода "Пиковый детектор" для МК

К аналоговому входу MEGA328 подключен пьезоэлемент.
При постукивании по нему значение АЦП меняется.

Вопрос: как программно зафиксировать и запомнить максимальное значение АЦП?

То есть, требуется, как бы, программная реализация пикового детектора на МК.

 

M1:  START ADC:     
       IN AX
       MOV BX, AX
       START ADC:
       IN AX
       CMP AX, BX
       JNS M1

В ВХ - максимум

Но это не асм АВР.

 
RA3AEX-IV: M1:  START ADC:             IN AX        MOV BX, AX        START ADC:        IN AX        CMP AX, BX        JNS M1 В ВХ - максимум

В коде ошибка, М1 надо перенести на 3 строчки ниже и после сравнения пропущена команда MOV BX, AX.

 
DWD: То есть, требуется, как бы, программная реализация пикового детектора на МК.

Считываем значение с АЦП, сравниваем его с переменной макс, если значение больше чем в макс, записываем считанное значение в переменную макс. И так по кругу.
Максимальное значение будет находиться в переменной макс.

 

Да, правильно, "давненько не брал в руки шашек".

 

Арс, спасибо!
Тут, правда, проблемы - как этот код встроить в блоки программы FLProg... embarassed

Но суть понятна. На АСМ-е сам когда-то не плохо ваял...
Попробую сначала реализовать этот алгоритм на логических элементах программы.