Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/45: Рейтинг темы: голосов - 45, средняя оценка - 4.89
bt?
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 23
1

мелкий вопрос по АЦП

25.05.2011, 14:06. Просмотров 8072. Ответов 20
Метки нет (Все метки)

Здрасьте, использую gcc пишу а си, имеется небольшой ламерский вопрос по ацп в авр: когда завершается преобразование, результат хранится в ADCL:ADCH - а сам значение хранится там в hex? или все таки в dec? или забирать надо в hex и преобразовывать в dec? или не парится с преобразованием и просто забирать и все?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 14:06
Ответы с готовыми решениями:

Мелкий вопрос: можно ли оставить AVCC висеть в воздухе?
ATmego32 (TQFP). АЦП и аналоговый компаратор не используются. Сильно ограничен в размерах и...

Вопрос по АЦП
Без прелюдии и сразу к делу!)) Короче вопрос такой: даю я команду АЦП (tiny45) начать...

Вопрос по АЦП. + 1V на ножках.
Добрый день. Прошу подсказки. Настраиваю АЦП на прием напряжения с термосопротивления. По ходу...

Вопрос по точности АЦП в Atmega48
Делаю измеритель на микроконтроллере и столкнулся с таким моментом. Если брать Atmega8, то он при...

АЦП, вопрос по книге Ю.Ревич "Практическое программирование
Ю.Ревич "Практическое программирование МК AVR на языке ассемблер" страница 46 Заметки на полях ...

20
ptoop
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 1,761
25.05.2011, 14:16 2
эээ... тут и как ответить не знаешь :)
Там просто 16-разрядное число. Не знаю, как там в си - int16 кажется. Бери и всё.
0
Гарнист
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
25.05.2011, 14:32 3
Цитата Сообщение от bt?
сам значение хранится там в hex? или все таки в dec?
В bin оно хранится.
0
Otikzzz
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
25.05.2011, 14:46 4
U=(Uref/2^разрядность_ацп)*ADCL:ADCH
0
25.05.2011, 14:46
somyo_3
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 544
25.05.2011, 18:04 5
Хех, это сложный вопрос. Я тоже однажды таким вопросом зафейлился. Шестнадцатиричная/двоичная/десятичная - это системы счисления. А число при этом не меняется. Допустим, такое верно.

unsykned char a = 3;
if ((a==0b00000011)||(a==0x03))
{}
0
bt?
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 23
25.05.2011, 19:58 6
и когда придет гуру и рассудит невежд?
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
25.05.2011, 20:01 7
Число там хранится в двоичной кодировке, как сказал Гарнист.
Пересчитывается в реальное напряжение по формуле, которую дал Otykzzz.
Все.
0
bt?
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 23
25.05.2011, 20:02 8
Прикол в том, что в студии разряды ADCH:ADCL разложены по битам, что вроде логично, что это двоичный код, но когда проводишь отладку через jtag, в колонке value вписывается хексадецимал значение 0 x XX... вот и хз че кого там... значит полюбас надо писать функцию по переводу в десятичную систему, чтобы удобнее работать было... а это опять расход ресурсов, который нам нах не нужен...
0
bt?
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 23
25.05.2011, 20:05 9
dsodir, мне не всегда нужно знать напряжение "де-факто", я рассчитаю три пороговых уровня и соответствующие им значения АЦП, и просто буду при замере сравнивать, в каких пределах находится измеряемое напряжение. мне надо знать что писать в конструкциях if-else!!

писать:
if (a>255) ... или if (a>0xFF)
что писать блин в коде???
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
25.05.2011, 20:11 10
Неважно:

if (adc > 219)
это тоже самое, что
if (adc > 0xDB)
И тоже самое, что
if (adc > 0b11011011)
И даже тоже самое, что
if (adc > "Ы")

Такие дела.
0
ptoop
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 1,761
25.05.2011, 20:36 11
Число там хранится в двоичной кодировке, как сказал Гарнист.
Точнее сказать - число там ПРОСТО хранится. А как его представить другой вопрос. Например как у тебя:
if (adc > 219)
это тоже самое, что
if (adc > 0xDB)
И тоже самое, что
if (adc > 0b11011011)
И даже тоже самое, что
if (adc > "Ы")
0
somyo_3
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 544
25.05.2011, 20:39 12
Собственно, именно это своим постом я и пытался сказать.
Хех, это сложный вопрос. Я тоже однажды таким вопросом зафейлился. Шестнадцатиричная/двоичная/десятичная - это системы счисления. А число при этом не меняется. Допустим, такое верно.

unsykned char a = 3;
if ((a==0b00000011)||(a==0x03))
{}
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
25.05.2011, 20:41 13
ptoop:
Ну если вскрыть чип, добраться до регистров АЦП, то мы увидим 16 ячеек, принимающих одно из двух возможных состояний. Все-таки она двоичная :)
0
Moxym_DM
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 11
25.05.2011, 21:17 14
Можно открыть книгу, и прочитать определение регистра. И оно гласит, что регистр представляет собой цифровую электронную схему, служащую для временного хранения двоичных чисел. Вообще, любая ЭВМ оперирует исключительно двоичными числами и ничего другого она не умеет и не знает:) А dec, hex не более чем математическая абстракция.
0
somyo_3
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 544
25.05.2011, 21:23 15
>>>любая ЭВМ
А как же аналоговые и троичные??

>> А dec, hex не более чем математическая абстракция.
А вот это в точку.
0
Moxym_DM
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 11
25.05.2011, 21:28 16
>>>А как же аналоговые и троичные??

И много вы их в живую видели?
И сколько программ вы под них написали. Речь все-таки о том, что мы реально используем
И троичная ЭВМ это в основе двоичная ЭВМ
0
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
25.05.2011, 21:31 17
Есть очень мало микросхем, в которых числа хранятся в BDC - binary-decimal code - двоично-десятичный код. И практически все они предназначены для определенных целей, чаще всего для вывода на индикаторы.

Двоично-десятичный код отличается тем, что каждый полубайт (4 разряда) обнуляется с переносом после 1001 (9).
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
25.05.2011, 21:35 18
Очень мало? ЕМНИП, это чуть менее, чем все RTC..
0
Moxym_DM
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 11
25.05.2011, 21:42 19
binary-decimal code-это прежде всего двоичный код. Просто в каждой ячейке хранится число, не превышающее 9.
0
ptoop
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 1,761
25.05.2011, 22:21 20
Есть очень мало микросхем, в которых числа хранятся в BDC - binary-decimal code - двоично-десятичный код.
Это всего лишь удобное разделение числа по ячейкам (регистрам). В остальном разницы нет.

Цитата Сообщение от dsodir
ptoop:
Ну если вскрыть чип, добраться до регистров АЦП, то мы увидим 16 ячеек, принимающих одно из двух возможных состояний. Все-таки она двоичная :)
Мы разве о физическом представлении чисел? Если так, то да, в двоичном.
Я имел ввиду запись его в исходном коде...
0
25.05.2011, 22:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 22:21

Вопрос о влиянии низкой тактовой частоты на работу АЦП
Доброго, джентльмены. Ваяю приборчик на Тини26 с использованием АЦП. Главное требование -...

Расширение АЦП микроконтроллера и подключение к АЦП датчиков
Здравствуйте. У меня встала задача сделать устройство для элеватора, для контроля температуры в 864...

Mega16 и неиспользуемый АЦП (питание ацп?)
Если я не использую АЦП контроллера нужно ли подавать на АЦП питание? Если нет, то просто оставить...


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

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

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