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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Родился
Сообщения: 9
Зарегистрирован: Пт дек 18, 2015 08:09:45

Сообщение davingex »

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

Можно ли это сделать при помощи команды IF ?
Если у кого нибудь есть пример кода на С то было бы супер
Реклама
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

davingex писал(а):Главное, что без участия компараторов.
Вы не поверите, но они именно для этого и предназначены. Причём они больше ничего и не умеют, как сравнивать 2 напряжения.
Отсюда резонный вопрос - почему их не использовать ?
Реклама
Родился
Сообщения: 9
Зарегистрирован: Пт дек 18, 2015 08:09:45

Сообщение davingex »

дело в том что сравнений будет около 20, а компараторов точно меньше 20
МК поменять не получиться
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

А какой МК ?
Компилятор, также, назовите.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 9
Зарегистрирован: Пт дек 18, 2015 08:09:45

Сообщение davingex »

tms320f2812
code composer stutio v 3.1 IDE
Реклама
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение А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){  // Напряжения на каналах одинаковые
  .... 
}
Но, учитывая, что оцифровка множества каналов - дело довольно-таки долгое, то время отклика на сравнение будет соответствующим.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Пт дек 18, 2015 08:09:45

Сообщение davingex »

Спасибо)) теперь ясно)

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

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

Вернуться в «Разные вопросы по МК»