Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/47: Рейтинг темы: голосов - 47, средняя оценка - 4.91
Stovost
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 40
1

Чтение регистров АЦП в одну переменную?

06.02.2011, 14:07. Просмотров 8906. Ответов 9
Метки нет (Все метки)

Добрый день!Пишу на Atmega 2561. 1024 разрядный АЦП.
Мах значение на АЦП 0x03FF:
ADCH 0000.0011
ADCL 1111.1111
Хочу прочитать в одну переменную значение регистров АЦП ADCH и ADCL! Как в Си в старший разряд 2-байтовой переменной загнать значение ADCH, а в младший разряд - значение ADCL? Может есть какая-то команда, которую я никак не найду?
Ведь просто сложить ADCH и ADCL в одну переменную нельзя, т.к. мы нарушим паритет разрядности! (03+FF не будет равно 03FF)
Буду благодарен!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2011, 14:07
Ответы с готовыми решениями:

Сложить содержание регистров R1 и R4 текущего банка регистров и отразить результат на статическом индикаторе
Сложить содержание регистров R1 и R4 текущего банка регистров и отразить результат на статическом...

Домофон - запись двух нажатий в одну переменную.
Для курсового проекта нужно сделать домофон. Использую матричную клавиатуру 3х4. Если квартира от...

Чтение регистров таймера через DMA, stm32F103C8.
Здравствуйте. Решил попробовать организовать чтение регистров таймера в режиме энкодера, через...

При отправке запроса на чтение holding регистров (0x04), получаю в ответе мусор
Есть устройство (источник питания), которое подключено через rs-485 to usb converter и с протоколом...

Вывод на экран двоичного содержимого двух регистров (ввести значения этих регистров требуется с клавиатуры)
требуется разработать программу вывода на экран двоичного содержимого двух регистров так, чтобы...

9
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
06.02.2011, 14:12 2
Старший*256 + Младший.
Т.е. старший сдвигаем на 8 разрядов влево.

Кстати, 1024 разрядный АЦП это жесть :)
0
sytyzim
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 210
06.02.2011, 14:19 3
В winavr(как в других компиляторах, не знаю) есть 16-битный регистр ADCW - результат преобразования ацп.
0
xDryvir
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 18
06.02.2011, 19:34 4
Цитата Сообщение от dsodir
Кстати, 1024 разрядный АЦП это жесть :)
Почему ?
0
06.02.2011, 19:34
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
06.02.2011, 20:18 5
Потому-что он 10 разрядный.
А 1024 это... кхм.. как-бы по человечески сказать... размер шкалы. От 0 до 1023.
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
06.02.2011, 20:36 6
Цитата Сообщение от sytyzym
В winavr(как в других компиляторах, не знаю) есть 16-битный регистр ADCW - результат преобразования ацп.
В компиляторах от МикроЭлектраники просто есть функция ADC_Read(№_канала), возвращающая результат в двухбайтовой переменной типа WORD. А если читать побайтно, то есть чтение или присвоение значения младшему и старшему байту 2х байтовой переменной: Hi(переменная), Lo(переменная).
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
06.02.2011, 20:38 7
А она учитывает выборку? (бит ADLAR)
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
06.02.2011, 20:57 8
Цитата Сообщение от dsodir
А она учитывает выборку? (бит ADLAR)
Левый или правый сдвиг задаются при инициализации. А считывается в любом случае просто число от 0 до 1024 в формате WORD.
0
Stovost
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 40
10.02.2011, 12:16 9
Спасибо! Получилось просто взятием a=ADC! (ADCW в AVR Studyo не работает(()
0
vystor_b_k
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
10.02.2011, 13:32 10
Цитата Сообщение от SWK
Цитата Сообщение от dsodir
А она учитывает выборку? (бит ADLAR)
Левый или правый сдвиг задаются при инициализации. А считывается в любом случае просто число от 0 до 1024 в формате WORD.
Уточню - число может быть от 0 до 1023 - (2^10 - 1)
0
10.02.2011, 13:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2011, 13:32

Чтение внешнего АЦП по SPI DMA по таймеру (HAL)
Здравствуйте. Начал изучение STM32 с МК STM32F746. Хотел использовать связку CubeMX + CooCox...

Не кешировать одну переменную
Всем привет. Есть переменная, которая хранится в сессиях. Она отвечает за текущий город. Она...

2 OpenRead в одну переменную
Доброго времени суток, собственно как закинуть url2 в data , что-бы на выходе получить оба хтмла в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru