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

 
 
> 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
Ответов
mrKirill
сообщение Nov 23 2007, 04:45
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391



Цитата
while (1)
{
a = read_adc(0);
PORTC.6 = 1;
delay_ms(a);
PORTC = 0x00;
delay_ms(a);
};

Почитал посты, тут как я понял мало кто использует CV, добавлю свою каплю, так как в CV работал около 1 года.
Так вот зацитированная выше мною часть ИМХО должна выглядеть так:
Цитата
while (1)
{
read_adc(0); //Запуск преобразования АЦП
a = ADCW; //Считывание преобразованного значения
PORTC.6 = 1; //Установили вывод
delay_ms(a); //Пауза
PORTC.6 = 0; //Сбросили вывод
delay_ms(a); //Пауза
};

Если бы удосужились почитать Help на CV, то поняли бы что строка:
Цитата
a = read_adc(0);

Представляет собой - чушь
Правильность конфигурирования выводов и АЦП не проверяю, Wizard для этого есть

Сообщение отредактировал mrKirill - Nov 23 2007, 04:48
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 23 2007, 10:25
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(mrKirill @ Nov 23 2007, 06:45) *
Если бы удосужились почитать Help на CV, то поняли бы что строка:
Представляет собой - чушь
А если бы удосужились посмотреть приведенный исходник, то поняли бы, что это вовсе не функция из библиотеки CV.
Цитата(mrKirill @ Nov 23 2007, 06:45) *
Правильность конфигурирования выводов и АЦП не проверяю, Wizard для этого есть
"Программирование мышкой"? Ну-ну.

Цитата(mr_onnik @ Nov 22 2007, 23:28) *
Скажу сразу: я не профи в этом деле, поэтому с инициализацией у меня прблемы sad.gif
Ее у вас просто нет sad.gif Возьмите описание АЦП, раздел регистры, выпишите все три описанных там регистра, далее читая описание на каждый из битов регистра решите, какое значение вам нужно записать в этот бит, чтобы АЦП сделало то, что вы хотите. И поставьте запись этих битов в эти регистры в функцию инициализации перед разрешением прерываний.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
mrKirill
сообщение Nov 23 2007, 11:11
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391



Цитата(Сергей Борщ @ Nov 23 2007, 16:25) *
А если бы удосужились посмотреть приведенный исходник, то поняли бы, что это вовсе не функция из библиотеки CV.

Если бы удосужились более внимательно прочитать пост #17, который я цитировал, то наверное заметили бы, что там внизу текста приведена фраза "Программа CodeVisionAVR.", вот и привел правильный кусок программы для CV.
Цитата
"Программирование мышкой"? Ну-ну.

Насколько я понял в деле программирования и конфигурирования он не силен, потому пусть тыкается в Визарде, потом может научится все правильно конфигурировать

Лично сам пишу работаю в AVR Studio (для asm), CodeVision и IAR (для С), потому "программирование мышкой" - не ко мне.
Офф-топ закончен.
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
- - oran-be   А это - так задумано? Код ADMUX=adc_input | 0xff;...   Nov 7 2007, 06:50
|- - mr_onnik   Цитата(oran-be @ Nov 7 2007, 08:50) ...   Nov 7 2007, 08:30
- - 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 @ 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 - 03:15
Рейтинг@Mail.ru


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