roboforum.ru

Технический форум по робототехнике.
Текущее время: 22 май 2025, 01:47

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




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

Зарегистрирован: 12 фев 2008, 15:00
Сообщения: 110
Откуда: Шахты
прог. языки: Delphi, Python, ну и асм немного
Цитата:
В том и дело, что никакого конденсатора, подключенного к AREF на картинке нет. И вообще AREF там никуда не подключено, как и у меня.


Такой вариант может работать только при включении внутреннего ИОНа на 2.56 Вольт.
Ну и для повышения точности/стабильности кондер на AREF и на землю.


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

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
...чего вы путаете парня.
1. с ноги REF повесить кондер на землю. Никуда больше ее подключать не надо.
2. объявить переменные adc_complete и adc_data с модификатором volatile.
3. читать только старший байт (или, если нужно оба, то сначала младший, потом старший)
4. Даташит не врет.

Добавлено спустя 8 минут 3 секунды:
проверьте ADCSRA еще раз. я навскидку могу ошибаться, но кажется вы АЦП разрешили, но не запустили.


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

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Radist писал(а):
И тем не менее, хоть вы и берете только 8 бит и выравниваете по старшему байту - читать надо оба байта результата. Младший можно прочитать и тут же забыть о нем, но процедура чтения из младшего байта ОБЯЗАТЕЛЬНА (хотя в даташите пишут что и не обязательно).

Ссылку на errata от Atmel можно? Контроллер-то не новый, неужели такую нестыковку в нем оставили? В даташите ясно написано - можно читать либо "младший,старший", либо только старший. В атмеге16 у меня чтение только старшего работало прекрасно.

HarryStar, ты мое предыдущее сообщение прочитал? У тебя
HarryStar писал(а):
Код:
ADMUX = 0b01000111
- почему не 0b01100111?


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

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Снимаю свое замечание про обязательное чтение обоих байтов. Тут уж чего только не предложишь, чтоб заработало, ведь простой ацп :)


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

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 996
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
boez писал(а):
HarryStar, ты мое предыдущее сообщение прочитал? У тебя
HarryStar писал(а):
Код:
ADMUX = 0b01000111
- почему не 0b01100111?

Предыдущее сообщение не понял :) А как оказалось зря.
Действительно проблема была в неправильной установке бита ADLAR регистра ADMUX.
Соотв. выравнивание было неправильным, результат ADCH был от 0 до 3, которые у меня по программе отсекались.

По поводу чтения младшего бита, действительно необязательно читать ADCL, снятие блока регистров происходит при чтении старшего, младший пофиг читали или нет.

Всем огромное спасибо за терпение моего тупизма! :)

Осталось изучить фьюзы (а то у меня 1Мгц внутр RC), I2C(мастер и раб для связи 2х контроллеров), подключение SD карты, COM-порт и начну проектировать своего роботика.


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

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


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

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


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

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