roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 22:36

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




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 12:30 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
к561ЛА7 писал(а):
выбираем 1й канал опорное 2.56 сдвиг вправо читаем хай
выбираем 4й канал опорное 2.56 сдвиг вправо читаем хай

Право и лево не перепутаны? Если сдвиг вправо, то в high будет всего 2 полезных бита...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 14:48 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
Сделал так:

Код:
выбираем 1й канал опорное 2.56 сдвиг вправо -ждем завершения АЦп прелобразования - читаем лоу ,читаем хай
выбираем 2й канал опорное питаие сдвиг влево - ждем- читаем лоу, читаем хай
выбираем 3й канал опорное питаие сдвиг влево -ждем- читаем лоу, читаем хай
выбираем 4й канал опорное 2.56 сдвиг вправо -ждем-читаем лоу ,читаем хай


но ничего не изменилось
1 канал читает правильно
2 - правильно
3- правильно
а 4й врет, причем математически неописуемо врет.

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Последний раз редактировалось к561ЛА7 30 мар 2011, 15:15, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:11 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
1. Поменяй местами датчики 1 и 4-й.
2. Попробую делать по два замера на каждом канале.
3. Как ты ждешь окончания ADC-преобразования?

Добавлено спустя 56 секунд:
А, ну можно не менять датчики, а замерить напряжение на них

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:13 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
датчики менял, они исправные
по 2 замера делал, правда на врущем канале
жду вот так:

Код:
ADMUX=0b11100100;   //канал 4
ADCSRA.6=1;
while(ADCSRA.4==0);

s_reg4_L=ADCL; // 
s_reg4=ADCH;

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:37 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
1. Bits 3:0 – MUX3:0: Analog Channel Selection Bits
The value of these bits selects which analog inputs are connected to the ADC. See Table 22-3
for details. If these bits are changed during a conversion, the change will not go in effect until this
conversion is complete (ADIF in ADCSRA is set) - перед сменой канала вставь еще одну проверку окончанию преобразования
2. Замерь напряжение на датчике прямо в работающей схеме, может быть все-таки что-то коротит или еще что...
3. У тебя выравнивание по левой стороне стоит - так и задумано? (ADLAR = 1)

Добавлено спустя 3 минуты 33 секунды:
In Free Running mode, a new conversion will be started immediately after the conversion completes,
while ADSC remains high. For a summary of conversion times, see Table 22-1.
У тебя отключен Free Running Mode?

Добавлено спустя 13 минут 20 секунд:
И по всему похоже у тебя какой-то баг в коде чтения третьего канала. Из бредовых, которые замыленным глазом не ловятся. Типа ADMUX = 0x11100100;

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:41 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
1. проверку не вставил, но перенес этот кусок в конец обработчика прерывания
2. напряжение замерял- одинаковое
3. АДЛАР 1, выравнивание в регистр хай, из него читаем
4 Free Running mode как отключать не знаю, но думаю что этот режим может быть только когда один канал оцифровывается

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Последний раз редактировалось к561ЛА7 30 мар 2011, 15:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:44 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Еще из бредового - проверь, что в третьем канале ты точно читаешь хай.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:47 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
dccharacter писал(а):
Еще из бредового - проверь, что в третьем канале ты точно читаешь хай.

в третьем канале читаю и ло и хай, канал меряет правильно.

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:51 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
что-то у тебя происходит после третьего канала, а что - непонятно. попробуй читать четвертый канал сразу после первого - поиграйся с порядком, посмотри что и после чего вылетать начинает... переведи 4-й канал на пятный. полностью переинициализируй и промерь 4-й канал несколько раз - не просто с запуском преобразования а с ожиданием окончания преобразования, конфигурацией, запуском и чтением...

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
да вообще чудеса происходят, если его отключить (не измерять), то врать начинает 1й
, а если поменять частоту преобразования АЦП, то измерения не меняются, но начинает врать математика - (я этот канал прибавляю к другому - измеряет 37, а прибавляет 41.

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 16:10 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Если ты это делаешь в прерывании, то у тебя кто-то меняет значение переменной вне прерывания.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 30 мар 2011, 16:14 
Код:
uint16_t ADC_Value[5];
uint8_t j = 0;

//   62,5kHz
void init_adc (void)
{
   ADCSRA = 0x00;
   ADCSRA |= _BV(ADEN) | _BV(ADIE) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0);
   SFIOR = 0x00;
}

void start_computation (uint8_t channel)
{
   ADMUX = ADMUX & 0xE0;
   switch (channel)
   {
      case 0:{break;}
      case 1:{ADMUX |= _BV(MUX0);break;}
      case 2:{ADMUX |= _BV(MUX1);break;}
      case 3:{ADMUX |= _BV(MUX1) | _BV(MUX0);break;}
      case 4:{ADMUX |= _BV(MUX2);break;}
      case 5:{ADMUX |= _BV(MUX2) | _BV(MUX0);break;}
      case 6:{ADMUX |= _BV(MUX2) | _BV(MUX1);break;}
      case 7:{ADMUX |= _BV(MUX2) | _BV(MUX1) | _BV(MUX0);break;}
      default:{break;}
   }
   ADCSRA |= _BV(ADATE) | _BV(ADSC);
}

ISR (ADC_vect)
{
   if (j<5)
   {
      ADC_Value[j] = ADCL;            //Read 8 low bits first (important)
      ADC_Value[j] |= (int)ADCH << 8;   //read 2 high bits and shift into top byte
      j++;
   }
   else
   {
      ADCSRA |= !_BV(ADATE)
             |= !_BV(ADSC);
      distance_calculation ();
   }
}


Вернуться к началу
  
 
 Заголовок сообщения: Re: АЦП в атмере 8а
СообщениеДобавлено: 31 мар 2011, 13:34 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
я учился по курсу АРВ123 и такий стиль програмирования к сожалению не понимаю
ПРишел к выводу что это глюки самой микросхемы - отсоединил все, и все равно ошибка преобразования + ошибка в вичислени. да еще и программа сбивается.

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 17


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

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