Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 17 сен 2019, 10:22

Часовой пояс: UTC + 3 часа [ Летнее время ]



Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Анти-спам
Анти-спам:
Выполните задание
   

Обзор темы - джойстик - UART
Автор Сообщение
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
Я тут. Прошу прощения что пропал. Пытался все-таки понять о чем вы говорите тут. )) Я действительно смотрел пока, какими вариантами еще можно организовать опрос двух каналов ацп... Завтра попробую ваши варианты. )
Сообщение Добавлено: 07 мар 2016, 20:08
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
Похоже изучает МК, и это правильно. 8-)
Сообщение Добавлено: 06 мар 2016, 12:38
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
это всё лирика, где автор топика?))
Сообщение Добавлено: 06 мар 2016, 11:45
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
_zag_ писал(а):
а зачем его поднимать, если я подкорректировал без него?))

Я в коде не увидел корректировку. Какая процедура это делает?
_zag_ писал(а):
Но если так необходим этот бит, то на рисунках показал что надо сделать: Выделить номер канала из ADMUX и изменить описание констант _ADC_Min_Ch и _ADC_Max_Chю Ну и естественно сам процесс обработки значения АЦП...

Можно конечно и так (только битов выбора канала не три а пять)… но для универсальности алгоритма (имеется ввиду когда меняются и биты опорного напряжения в регистре ADMUX), я бы остановился на таком варианте, а константу _ADC_Max_Ch оставил бы как в первоначальном варианте.
Вложение:
1.png
1.png [ 18.75 КБ | Просмотров: 1164 ]
Сообщение Добавлено: 06 мар 2016, 10:41
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
SVN писал(а):
_zag_ писал(а):
а если вот так

Это ничего не меняет… подними бит ADLAR и увидишь.
а зачем его поднимать, если я подкорректировал без него?)) Но если так необходим этот бит, то на рисунках показал что надо сделать: Выделить номер канала из ADMUX и изменить описание констант _ADC_Min_Ch и _ADC_Max_Chю Ну и естественно сам процесс обработки значения АЦП...


Вложения:
Снимок2.PNG
Снимок2.PNG [ 4.8 КБ | Просмотров: 1176 ]
Снимок.PNG
Снимок.PNG [ 8.23 КБ | Просмотров: 1176 ]
Сообщение Добавлено: 06 мар 2016, 02:38
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
_zag_ писал(а):
а если вот так

Это ничего не меняет… подними бит ADLAR и увидишь.
Сообщение Добавлено: 06 мар 2016, 01:03
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
_zag_ писал(а):
по ADLAR справедливо только на первом круге, потом в ADMUX занесся 0 и все стало в норму...

Не согласен… если в ADMUX записать 0, то обнулится бит ADLAR, тем самым отключится коррекция. А если она нужна, тогда как? Остаюсь при своём мнении…
Вложение:
1.png
1.png [ 12.75 КБ | Просмотров: 1182 ]
Сообщение Добавлено: 06 мар 2016, 00:54
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
а если вот так


Вложения:
ADC.rar [8.91 КБ]
Скачиваний: 60
Сообщение Добавлено: 06 мар 2016, 00:37
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
SVN писал(а):
Akademik писал(а):
Вот что у меня получилось. Но ничего не работает...

Дык, понятно почему... ;)

Что касается регистра управления мультиплексором АЦП (ADMUX). Дело в том, что корректировка значений регистра ADC осуществляется битом ADLAR. Который тоже находится в регистре ADMUX. Так вот, как только ты его (бит ADLAR) установил в 1, значение всего регистра увеличится на $20. И когда ты сохраняешь регистр ADMUX в r16, то при нулевом канале мультиплексора, в r16 запишется не 0 а 32 ($20). Затем умножаешь r16 на 2… короче твой результат записывается чёртикуда, но не в переменную ADC0. Все остальные результаты по этому же подобию. :-)
Второй момент… ты используешь все 8 каналов при измерении… зачем? 8-)
Третий момент… постоянно передаёшь значение по UART не зависимо от того произвёл ты замер напряжения или нет. Так не делается… ;)


по ADLAR справедливо только на первом круге, потом в ADMUX занесся 0 и все стало в норму... в передаче используется пауза в 9мС за это время не один круг АЦП сделает.
Сообщение Добавлено: 06 мар 2016, 00:29
  Заголовок сообщения:  Re: джойстик - UART  
Цитата
Akademik писал(а):
Вот что у меня получилось. Но ничего не работает...

Дык, понятно почему... ;)

Что касается регистра управления мультиплексором АЦП (ADMUX). Дело в том, что корректировка значений регистра ADC осуществляется битом ADLAR. Который тоже находится в регистре ADMUX. Так вот, как только ты его (бит ADLAR) установил в 1, значение всего регистра увеличится на $20. И когда ты сохраняешь регистр ADMUX в r16, то при нулевом канале мультиплексора, в r16 запишется не 0 а 32 ($20). Затем умножаешь r16 на 2… короче твой результат записывается чёртикуда, но не в переменную ADC0. Все остальные результаты по этому же подобию. :-) Для универсальности алгоритма АЦП необходимо после записи ADMUX -> r16, проверять бит ADLAR, и если он равен 1, то из регистра r16 отнять значение 32 ($20). Тогда всё срастутся… ;)
Второй момент… ты используешь все 8 каналов при измерении… зачем? 8-)
Третий момент… постоянно передаёшь значение по UART не зависимо от того произвёл ты замер напряжения или нет. Так не делается… ;)
Сообщение Добавлено: 06 мар 2016, 00:11

Часовой пояс: UTC + 3 часа [ Летнее время ]


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