roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 06:25

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Mega8 и АЦП
СообщениеДобавлено: 24 ноя 2008, 16:39 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Есть такой регистр ADMUX
компилятор CVavr походу сразу создает дефайн в который записывает 0
Код:
#define ADC_VREF_TYPE 0x00

а затем приравниеват ADMUX
Код:
ADMUX=ADC_VREF_TYPE;

А мне нужно делать измериния не только на ADC0, но и на ADC1 я так понимаю что мне нужно изменять значения битов 0-4, так вот как мне лучше их изменить используя битовую маску?
Вот так буит правильно:
Измерения на ADC0
ADMUX=ADMUX & 00000000
Измерения на ADC1
ADMUX=ADMUX | 00000001


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Mega8 и АЦП
СообщениеДобавлено: 24 ноя 2008, 18:15 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
ЕМНИП cv делает ф-цию read_adc(channel)
в которой делают ADMUX = ADC_VREF_TYPE | channel;

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Mega8 и АЦП
СообщениеДобавлено: 25 ноя 2008, 08:17 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
Master, есть же мастер, хорошее подспорье
для 32й меги:
Код:
#define FIRST_ADC_INPUT 5       // миниботовские АЦП опрашиваю так
#define LAST_ADC_INPUT 7        // входы PORTA5-7
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];     // тут будет лежать результат измерения
#define ADC_VREF_TYPE 0xC0  // относительно чего оцифровывать ( вн. источник 2,56V)

// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
adc_data[input_index]=ADCW;       // Read the AD conversion result

// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
   input_index=0;

ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff) )+input_index; // собственно ответ на ввопрос

delay_us(10);         // Delay needed for the stabilization of the ADC input voltage
ADCSRA|=0x40;         // Start the AD conversion
}

кодевижен 2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Mega8 и АЦП
СообщениеДобавлено: 25 ноя 2008, 12:47 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Спсб, как работает до конца ниасилил, но уже работает. :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Mega8 и АЦП
СообщениеДобавлено: 25 ноя 2008, 12:54 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
аналогично, больно уж мудрен этот англицкий даташит.
пару научных тыков и почему то работает :crazy:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Mega8 и АЦП
СообщениеДобавлено: 26 ноя 2008, 00:22 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Я не видел код инициализации, но думаю что там указано прерывание по завершению преобразования.
В прерывании записывается результат в массив, за тем меняем канал, ждем, запускаем преобразование снова и выходим из обработчика.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO