реклама на сайте
подробности

 
 
> ATMega16 и АЦП, настройка
mr_onnik
сообщение Nov 6 2007, 20:15
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-11-07
Пользователь №: 32 020



Имеется МК Mega 163, на вход ADC0 (PA0) которого подается изменяющееся напряжение 0...5 В;
AVcc и AREF соединен с Vcc, AGND соединен с GND.

В CodeVisionAVR пишу такой код:
Код
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | 0xff;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSR|=0x40;
// Wait for the AD conversion to complete
while ((ADCSR & 0x10)==0);
ADCSR|=0x10;
return ADCW;
}

//настройки портов

void main(void)
{ int a = 0;

   while(1)
   {
    a = (int)read_adc;
    PORTC.6 = 1;
    delay_ms(a);
    PORTC = 0x00;
    }
}


в результате светодион на шестом выводе порта С постоянно мигает с частотой примерно 0,5с. Наверное, снимается показание с внутреннего источника опорного напряжения, которое составляет примерно половину 5В.

Что неправильно сделано? Как сделать, чтобы частота мигания светодиода менялась в зависимости от подаваемого напряжения на ADC0?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
oran-be
сообщение Nov 7 2007, 06:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



А это - так задумано?
Код

ADMUX=adc_input | 0xff;

Согласно даташиту вход АЦП будет всегда подключен к 0. А показания в 0.5 сек - может. стоит проверить, допускает ли функция
delay_ms()
передачу в качестве аргумента 0.
И еще - на Ацпшнике 2.5 В может быть только снаружи. Внутренее проверочное напряжение у него 1.22В

Сообщение отредактировал oran-be - Nov 7 2007, 06:51
Go to the top of the page
 
+Quote Post
mr_onnik
сообщение Nov 7 2007, 08:30
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 3-11-07
Пользователь №: 32 020



Цитата(oran-be @ Nov 7 2007, 08:50) *
А это - так задумано?
Код

ADMUX=adc_input | 0xff;

На самом деле нет. На сколько я разобрался в мануалах вместо 0xFF нужно указать адрес входа АЦП. А после неудачных попыток решил - пусть проганяет по всем.

mdmitry, источник питания дает 500мА. Сейчас мне не важна точность. Просто для начала собрал простенькую обвязку, чтобы увидеть работу АЦП. Когда увижу, буду повышать точность wink.gif

P.S. Может, эта строка неправильная?
Код
a = (int)read_adc;


Сообщение отредактировал mr_onnik - Nov 7 2007, 08:55
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mr_onnik   ATMega16 и АЦП   Nov 6 2007, 20:15
- - mdmitry   Цитата(mr_onnik @ Nov 6 2007, 23:15) Имее...   Nov 6 2007, 21:49
- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 03:15) a = ...   Nov 7 2007, 09:03
|- - IgorKossak   Цитата(SergeiCh @ Nov 7 2007, 11:03) (int...   Nov 7 2007, 09:33
|- - mr_onnik   Цитата(IgorKossak @ Nov 7 2007, 11:33) Ну...   Nov 7 2007, 10:09
||- - oran-be   Цитата(mr_onnik @ Nov 7 2007, 14:09) Испр...   Nov 7 2007, 10:36
|||- - mr_onnik   Цитата(oran-be @ Nov 7 2007, 12:36) ...   Nov 7 2007, 10:55
|||- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 17:55) Подр...   Nov 7 2007, 11:44
|||- - oran-be   Цитата(mr_onnik @ Nov 7 2007, 14:55) Заса...   Nov 7 2007, 13:01
||- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 17:09) Испр...   Nov 7 2007, 10:48
|- - SergeiCh   Цитата(IgorKossak @ Nov 7 2007, 16:33) Та...   Nov 7 2007, 10:19
- - oran-be   Да - кто первый заметит слона?   Nov 7 2007, 10:05
- - GDI   Вот что хорошо в CV, так это мастер нового проекта...   Nov 7 2007, 12:22
- - singlskv   Цитата(mr_onnik @ Nov 6 2007, 23:15) .......   Nov 7 2007, 19:41
|- - mr_onnik   Цитата(singlskv @ Nov 7 2007, 21:41) Авто...   Nov 8 2007, 21:22
|- - singlskv   Цитата(mr_onnik @ Nov 9 2007, 00:22) Код/...   Nov 8 2007, 23:53
||- - mr_onnik   Цитата(singlskv @ Nov 9 2007, 01:53) А гд...   Nov 22 2007, 21:28
|- - SergeiCh   Цитата(mr_onnik @ Nov 9 2007, 04:22) Код#...   Nov 9 2007, 04:43
- - sergeeff Jr.   PWM организуй при помощи таймера...   Nov 8 2007, 22:15
- - mrKirill   Цитатаwhile (1) { a = read...   Nov 23 2007, 04:45
|- - Сергей Борщ   Цитата(mrKirill @ Nov 23 2007, 06:45) Есл...   Nov 23 2007, 10:25
|- - mrKirill   Цитата(Сергей Борщ @ Nov 23 2007, 16:25) ...   Nov 23 2007, 11:11
|- - Сергей Борщ   Цитата(mrKirill @ Nov 23 2007, 13:11) Есл...   Nov 23 2007, 11:26
- - defunct   Код#define ADC_CONTROL (1 << ADEN...   Nov 23 2007, 13:16
- - WHALE   defunct,в CV это не пройдет.Почему-то у него нет х...   Nov 23 2007, 15:14
- - defunct   Цитата(WHALE @ Nov 23 2007, 18:14) в CV э...   Nov 23 2007, 16:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01909 секунд с 7
ELECTRONIX ©2004-2016