ADC ATMEGA169
-
anton234ff
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Ср янв 04, 2012 12:40:34
ADC ATMEGA169
доброго времени суток,коллеги.хотелось бы узнать,есть ли у кого-нибудь опыт работы с ацп меги в кодовижине????
суть дела такова: хочу 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);
};
};
суть дела такова: хочу 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);
};
};
- Реклама
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: ADC ATMEGA169
До сих пор поражаюсь как можно пользуясь код вижном задавать такие вопросы.Там же есть Мастер (wizard).
Настраиваете в мастере ADC->autoscan channels выбираете нужные каналы.
потом в коде принимаете
где ADC_MAX_POINTS (2^число_бит ) ,
а VREF конечно же опорное напряжение.
Преобразование напряжения можно оформить в виде функции. так как напряжение в любом случае нужно вычислять будь то напряжение либо ампераж.
Настраиваете в мастере ADC->autoscan channels выбираете нужные каналы.
потом в коде принимаете
Код: Выделить всё
#define VREF 3.0
#define ADC_MAX_POINTS 1024.0
float volts=(float)adc_data [i]*(VREF/ADC_MAX_POINTS); а VREF конечно же опорное напряжение.
Преобразование напряжения можно оформить в виде функции. так как напряжение в любом случае нужно вычислять будь то напряжение либо ампераж.
В поисках истины человек развивается.
-
anton234ff
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Ср янв 04, 2012 12:40:34
Re: ADC ATMEGA169
я пользуюсь им недавно,до этого писал на асме.
1.что касается мастера-он слишком много мусора пихает в программу.
2.можно и без мастера настроить нужное устройство или написать подпрограмму выдачи на жки и тп
1.что касается мастера-он слишком много мусора пихает в программу.
2.можно и без мастера настроить нужное устройство или написать подпрограмму выдачи на жки и тп
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: ADC ATMEGA169
Зачем тогда этот Кв использовать?Я смотрю что у вас отлично получается самому?
Есть готовое решение, можно конкретно его просмотреть и скопировать из мастера.Не обязательно мусор оставлять.
Есть готовое решение, можно конкретно его просмотреть и скопировать из мастера.Не обязательно мусор оставлять.
В поисках истины человек развивается.
-
anton234ff
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Ср янв 04, 2012 12:40:34
Re: ADC ATMEGA169
я сам и ковыряюсь обычно,стараюсь разбираться что и как работает. например,с генератором DDS сидел почти 3 недели,но заставил его работать как надо)))))) кстати,проблему устранил,нормально заработало.теперь надо возвращать программу в исходное состояние,и добавить усреднение.
- Реклама
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: ADC ATMEGA169
вы собираетесь еще три недели посидеть еще и с измерением напряжения?В то время, как код вижне настройка занимает десять минут вместе с созданием нового проекта.
В поисках истины человек развивается.
-
anton234ff
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Ср янв 04, 2012 12:40:34
Re: ADC ATMEGA169
)))))) вот в этом у меня было утыкание.а все остальное уже написано и кусками оттестировано.по большому счету после этого уже надо печатную плату импульсного преобразователя доделывать
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: ADC ATMEGA169
С какого по какой у вас каналы нужно измерять?
В поисках истины человек развивается.
-
anton234ff
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Ср янв 04, 2012 12:40:34
Re: ADC ATMEGA169
0 и 2-напряжение,1 и 3-напряжение пропорциональное току нагрузки.7 канал для самопроверки ввиду не ахти шного рефа.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: ADC ATMEGA169
Что вам даст седьмой канал так и не понял, он ведь тоже на реф ориентируется.Разве что через делитель должно одно и то же правильное число получаться.
В поисках истины человек развивается.


