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

1.png [ 18.75 КБ | Просмотров: 10849 ]
|
[quote="_zag_"]а зачем его поднимать, если я подкорректировал без него?))[/quote] Я в коде не увидел корректировку. Какая процедура это делает? [quote="_zag_"]Но если так необходим этот бит, то на рисунках показал что надо сделать: Выделить номер канала из ADMUX и изменить описание констант _ADC_Min_Ch и _ADC_Max_Chю Ну и естественно сам процесс обработки значения АЦП...[/quote] Можно конечно и так (только битов выбора канала не три а пять)… но для универсальности алгоритма (имеется ввиду когда меняются и биты опорного напряжения в регистре ADMUX), я бы остановился на таком варианте, а константу _ADC_Max_Ch оставил бы как в первоначальном варианте. [attachment=0]1.png[/attachment]
|
|
|
 |
Добавлено: 06 мар 2016, 10:41 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
Вложения: |

Снимок2.PNG [ 4.8 КБ | Просмотров: 10861 ]
|

Снимок.PNG [ 8.23 КБ | Просмотров: 10861 ]
|
[quote="SVN"][quote="_zag_"]а если вот так[/quote] Это ничего не меняет… подними бит ADLAR и увидишь.[/quote] а зачем его поднимать, если я подкорректировал без него?)) Но если так необходим этот бит, то на рисунках показал что надо сделать: Выделить номер канала из ADMUX и изменить описание констант _ADC_Min_Ch и _ADC_Max_Chю Ну и естественно сам процесс обработки значения АЦП...
|
|
|
 |
Добавлено: 06 мар 2016, 02:38 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
[quote="_zag_"]а если вот так[/quote] Это ничего не меняет… подними бит ADLAR и увидишь.
|
|
|
 |
Добавлено: 06 мар 2016, 01:03 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
Вложения: |

1.png [ 12.75 КБ | Просмотров: 10867 ]
|
[quote="_zag_"]по ADLAR справедливо только на первом круге, потом в ADMUX занесся 0 и все стало в норму...[/quote] Не согласен… если в ADMUX записать 0, то обнулится бит ADLAR, тем самым отключится коррекция. А если она нужна, тогда как? Остаюсь при своём мнении… [attachment=0]1.png[/attachment]
|
|
|
 |
Добавлено: 06 мар 2016, 00:54 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
а если вот так
Вложения: |
ADC.rar [8.91 КБ]
Скачиваний: 1449
|
а если вот так
|
|
|
 |
Добавлено: 06 мар 2016, 00:37 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
[quote="SVN"][quote="Akademik"]Вот что у меня получилось. Но ничего не работает...[/quote] Дык, понятно почему... ;)
Что касается регистра управления мультиплексором АЦП ([u]ADMUX[/u]). Дело в том, что корректировка значений регистра ADC осуществляется битом [u]ADLAR[/u]. Который тоже находится в регистре ADMUX. Так вот, как только ты его (бит ADLAR) установил в 1, значение всего регистра увеличится на $20. И когда ты сохраняешь регистр ADMUX в r16, то при нулевом канале мультиплексора, в r16 запишется не 0 а 32 ($20). Затем умножаешь r16 на 2… короче твой результат записывается чёртикуда, но не в переменную ADC0. Все остальные результаты по этому же подобию. :-) Второй момент… ты используешь все 8 каналов при измерении… зачем? 8-) Третий момент… постоянно передаёшь значение по UART не зависимо от того произвёл ты замер напряжения или нет. Так не делается… ;)[/quote]
по ADLAR справедливо только на первом круге, потом в ADMUX занесся 0 и все стало в норму... в передаче используется пауза в 9мС за это время не один круг АЦП сделает.
|
|
|
 |
Добавлено: 06 мар 2016, 00:29 |
|
|
 |
|
|
Заголовок сообщения: |
Re: джойстик - UART |
Цитата |
|
[quote="Akademik"]Вот что у меня получилось. Но ничего не работает...[/quote] Дык, понятно почему... ;)
Что касается регистра управления мультиплексором АЦП ([u]ADMUX[/u]). Дело в том, что корректировка значений регистра ADC осуществляется битом [u]ADLAR[/u]. Который тоже находится в регистре 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 |
|
|
 |