pokk ! Высылаю Вам программу с получением отрицательного результата разности ADC0 – ADC1. Программа промоделирована в Proteus’e. Для наглядности взят 4-х строчный LCD дисплей. Вы можете использовать 2-х строчный.
P.S. Для любителей поспорить: посмотрите, сколько дискрет на дисплее при 5-ти вольтах.
И прошу Вас коллеги, не пишите что Protes это всего-навсего симулятор. Не заставляйте меня проверять результат на макетке – результат будет тот же.
АЦП. Разбор полётов
Re: АЦП. Разбор полётов
- Вложения
-
- ADC_Mega8.rar
- Программа отрицательных чисел
- (67.95 КБ) 202 скачивания
На каждого Моцарта есть свой Сальери.
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: АЦП. Разбор полётов
siamds писал(а):И прошу Вас коллеги, не пишите что Protes это всего-навсего симулятор. Не заставляйте меня проверять результат на макетке – результат будет тот же.
Нет, мы не будем писать про протеус-симулятор. Мы будем писать,что это ниспосланное свыше озарение, кое нам принес божественный гений Лабс Электроник и его тайный посланник на Казусе - ТЕНЬ http://kazus.ru/forums/member.php?u=30285 ...
Трепещите неверные!!!!
АКУЕТЬ!
Re: АЦП. Разбор полётов
siamds,Благодарю за проект. Но вы тут просто делаете считывание одного канала потом другого и вычитание ,а я же хотел использовать дифференциальный вход при котором сразу в ADCW считается отрицательное значение в коде двоичного дополнения.
Кстати CodeVisionAVR ругается на
"can't specify more than one storage class"
Си только начал изучать.Но я так понял что ему не понятно такой тип данных, но как сделать так что бы он понял не знаю.
Код: Выделить всё
ad_0=adc_data[0]; //Запись в ad_0 данных ADC0
ad_1=adc_data[1]; //Запись в ad_1 данных ADC1
sum_ad=ad_0-ad_1; //Запись в sum_ad разности ADC0-ADC1Кстати CodeVisionAVR ругается на
Код: Выделить всё
register static unsigned char input_index=0;"can't specify more than one storage class"
Си только начал изучать.Но я так понял что ему не понятно такой тип данных, но как сделать так что бы он понял не знаю.
Re: АЦП. Разбор полётов
pokk ! Так как Вы хотите у Вас, вероятно, не получиться и вот почему. В грубой форме это выглядит так: предположим, у нас подключен ADC0. Сигнал с этого PIN’a поступает на УВХ (Устройство Выборки-Хранения) и далее в ADCW. По окончанию цикла преобразования селектор подключает ADC1, и новые данные вновь поступают в ADCW, и так циклически подключая тот или иной канал ADC данные записываются и читаются ADCW последовательно, но не параллельно. Я не претендую на истину в последней инстанции, но, то, что я изучал, выглядит именно так.
У меня был компилятор, который тоже ругался на эту строку:
register static unsigned char input_index=0;
я вышел из положения следующим образом:
unsigned char input_index=0; записываем в область глобальных переменных
// register static unsigned char input_index=0; просто закомментируем эту строку
У меня был компилятор, который тоже ругался на эту строку:
register static unsigned char input_index=0;
я вышел из положения следующим образом:
unsigned char input_index=0; записываем в область глобальных переменных
// register static unsigned char input_index=0; просто закомментируем эту строку
На каждого Моцарта есть свой Сальери.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: АЦП. Разбор полётов
Любой компилятор C должен ругаться на применение в одной строке двух разных storage class (в данном случае static и register)
register static это такая же мура как и unsigned signed или long short
register static это такая же мура как и unsigned signed или long short
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Re: АЦП. Разбор полётов
Я взял всё из даташита извините сразу не написал что использую atmeg128.


Re: АЦП. Разбор полётов
Уважаемый pokk! К сожалению, я не знаком с atmega128, а изучать этот МК, у меня просто нет времени. Так что извините, что не смог помочь Вам.
На каждого Моцарта есть свой Сальери.
Re: АЦП. Разбор полётов
siamds, нечего страшного оказалось мне не надо отрицательный значения т.к сигнал поднят на какую-то постоянную составляющую =)