Страница 1 из 1

Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 14:00:33
davingex
Всем привет
Подскажите пож-та как сравнить два напряжения на МК?
Главное, что без участия компараторов. Напряжения приходят на АЦП.

Можно ли это сделать при помощи команды IF ?
Если у кого нибудь есть пример кода на С то было бы супер

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 14:59:47
Аlex
davingex писал(а):Главное, что без участия компараторов.
Вы не поверите, но они именно для этого и предназначены. Причём они больше ничего и не умеют, как сравнивать 2 напряжения.
Отсюда резонный вопрос - почему их не использовать ?

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 15:22:37
davingex
дело в том что сравнений будет около 20, а компараторов точно меньше 20
МК поменять не получиться

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 15:26:41
Аlex
А какой МК ?
Компилятор, также, назовите.

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 15:31:02
davingex
tms320f2812
code composer stutio v 3.1 IDE

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 15:41:23
Аlex
Упс... Ни камня такого, ни тем более компилятора, не знаю. Соответственно, конкретно по АЦП подсказать не смогу.
Но, если удалось оцифровать 2 значения, то вероятнее всего и спасут обычные условия:

Код: Выделить всё

resADC_1 = ADCread(1);  //Читаем первый канал
resADC_2 = ADCread(2);  //Читаем второй канал
.............
.............
if(resADC_1 < resADC_2){  // Напряжение на первом канале ниже
  .... 
}
if(resADC_1 > resADC_2){  // Напряжение на первом канале выше
  .... 
}
if(resADC_1 == resADC_2){  // Напряжения на каналах одинаковые
  .... 
}
Но, учитывая, что оцифровка множества каналов - дело довольно-таки долгое, то время отклика на сравнение будет соответствующим.

Re: Сравнение двух напряжений

Добавлено: Вт янв 12, 2016 17:18:24
davingex
Спасибо)) теперь ясно)

еще один вопросик есть, продолжение это темы)
Допустим у нас 20 сравнений. 5 сравнений прошло и произошла остановка МК. Нужно чтобы после включения отчет начался с 6 - го сравнения, как это реализовать ?)

Вот думаю подключить энергонезависимую память, но не знаю как это реализовать в коде чтобы он запоминал то самое место( синхронизацию с МК и т.д) С этим никогда не сталкивался.