Обсуждаем контроллеры компании Atmel.
Ответить

ADC ATMEGA169

Сб сен 08, 2012 21:21:15

доброго времени суток,коллеги.хотелось бы узнать,есть ли у кого-нибудь опыт работы с ацп меги в кодовижине????
суть дела такова: хочу 4 канала ацп использовать для измерения током и напряжений своего нового блока питания,5 канал для калибровки опорного источника. 4 канала выводятся на дисплей. дисплей нормально работает,над алгоритмом обработки результатов измерения попотел,но тоже работают. уперся в одну проблему-ацп должно работать в режиме "ручного запуска".программа проходит 1 раз,ацп нормально измеряет и глохнет.не понимаю почему.уже просто все лишнее на данный момент из кода поудалял,осталось 3 строчки,а результата ноль(((( может ктот-то в моих каракулях ошибку углядит или что полезное подскажет?может я как-то некорректно ацп настраиваю?((( а может очередной глюк кодавижина?



while (1)
{
char counter;
char temp;
LCDinic();
COMM=0b00001110;
LCDtxcCOMM();

COMM=0b00000110;
LCDtxcCOMM();


/*

//TEST-SEND!!!!!!!!!!!!!
inVOLTdecPOS=12.735; //test
inCURRdecPOS=0.857; //test
inVOLTdecNEG=31.259; //test
inCURRdecNEG=0.129; //test
*/



ADMUX=0b00000111;
ADCSRA=0b10000110;
while (1)
{

ADCSRA=0b10001110;
ADCSRA=0b11001110;

while(temp!=0b00010000)
{
temp=ADCSRA;
temp&=0b00010000;
};


ADCSRA=0b10000110;
delay_ms(1);





};
};

Re: ADC ATMEGA169

Вс сен 09, 2012 00:23:06

До сих пор поражаюсь как можно пользуясь код вижном задавать такие вопросы.Там же есть Мастер (wizard).
Настраиваете в мастере ADC->autoscan channels выбираете нужные каналы.
потом в коде принимаете
Код:
#define VREF 3.0
 #define  ADC_MAX_POINTS 1024.0
float volts=(float)adc_data [i]*(VREF/ADC_MAX_POINTS); 


где ADC_MAX_POINTS (2^число_бит ) ,
а VREF конечно же опорное напряжение.
Преобразование напряжения можно оформить в виде функции. так как напряжение в любом случае нужно вычислять будь то напряжение либо ампераж.

Re: ADC ATMEGA169

Вс сен 09, 2012 09:42:13

я пользуюсь им недавно,до этого писал на асме.
1.что касается мастера-он слишком много мусора пихает в программу.
2.можно и без мастера настроить нужное устройство или написать подпрограмму выдачи на жки и тп

Re: ADC ATMEGA169

Вс сен 09, 2012 10:05:37

Зачем тогда этот Кв использовать?Я смотрю что у вас отлично получается самому?
Есть готовое решение, можно конкретно его просмотреть и скопировать из мастера.Не обязательно мусор оставлять.

Re: ADC ATMEGA169

Вс сен 09, 2012 10:14:12

я сам и ковыряюсь обычно,стараюсь разбираться что и как работает. например,с генератором DDS сидел почти 3 недели,но заставил его работать как надо)))))) кстати,проблему устранил,нормально заработало.теперь надо возвращать программу в исходное состояние,и добавить усреднение.

Re: ADC ATMEGA169

Вс сен 09, 2012 10:25:54

вы собираетесь еще три недели посидеть еще и с измерением напряжения?В то время, как код вижне настройка занимает десять минут вместе с созданием нового проекта.

Re: ADC ATMEGA169

Вс сен 09, 2012 10:39:33

)))))) вот в этом у меня было утыкание.а все остальное уже написано и кусками оттестировано.по большому счету после этого уже надо печатную плату импульсного преобразователя доделывать

Re: ADC ATMEGA169

Вс сен 09, 2012 10:44:25

С какого по какой у вас каналы нужно измерять?

Re: ADC ATMEGA169

Вс сен 09, 2012 11:08:40

0 и 2-напряжение,1 и 3-напряжение пропорциональное току нагрузки.7 канал для самопроверки ввиду не ахти шного рефа.

Re: ADC ATMEGA169

Вс сен 09, 2012 12:38:01

Что вам даст седьмой канал так и не понял, он ведь тоже на реф ориентируется.Разве что через делитель должно одно и то же правильное число получаться.
Ответить