|
Вывод 2 байтов АЦП в одну переменную, ATMega 2561 - как считать ADCH:ADCL одним числом? |
|
|
|
 |
Ответов
|
Feb 12 2011, 08:10
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Код uint16_t* pADC = &ADC; Вы об этом? Цитата(_Pasha @ Feb 11 2011, 18:54)  +1 или за UART_RX_vect, USART_RX_vect, UART_RX_vect - приходится костылями обзаводиться. Да с U(S)ART'ами та ещё песня. Ну почему бы всегда не давать им номер? Пусть будет под номером 0, даже если он один одинёшенек. Что-то размечтался я:-)
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 12 2011, 18:08
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782

|
Цитата(_Pasha @ Feb 12 2011, 13:30)  Он об этом - дык там всегда чтение младший-старший, запись старший-младший. А шо тут думать? А шо туть думать ? А если подумать? Цитата Практическая полезность представления результата с выравниванием слева существует, когда достаточно 8-разрядное разрешение, т.к. в этом случае необходимо считать только регистр ADCH. В другом же случае необходимо первым считать содержимое регистра ADCL, а затем ADCH, чем гарантируется, что оба байта являются результатом одного и того же преобразования. Как только выполнено чтение ADCL блокируется доступ к регистрам данных со стороны АЦП. Это означает, что если считан ADCL и преобразование завершается перед чтением регистра ADCH, то ни один из регистров не может модифицироваться и результат преобразования теряется. После чтения ADCH доступ к регистрам ADCH и ADCL со стороны АЦП снова разрешается. Конец цитаты. "...то ни один из регистров не может модифицироваться и результат преобразования теряется...." вот здесь скорее всего некорректно- "...то ни один из регистров не может модифицироваться и результат преобразования не должен потеряться". ИМХО (не проверял- просто - логика) upd. Задело меня что-то - АЦП - последовательного приближения - старший байт - первый- рабочий ...Он - самый живой должен быть "и преобразование завершается перед чтением регистра ADCH" да есть уже в Н байт! L- вторично!
Сообщение отредактировал OlegNZH - Feb 12 2011, 18:15
|
|
|
|
|
Feb 13 2011, 08:39
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782

|
Цитата(demiurg_spb @ Feb 13 2011, 01:00)  Ничего не понял из написанного Вами, может это после 6-ти рабочих дней... Что конкретно Вам не понятно или с чем Вы не согласны? я просто развернул предыдущее сообщение - по поводу- кто старшее... младший-старший - это просто перевод из даташита- как нужно обращаться с байтами АЦП , ничего более.
|
|
|
|
Сообщений в этой теме
Slavast Вывод 2 байтов АЦП в одну переменную Feb 7 2011, 09:52 Alex_1811 =ADCH<<8+ADCL Feb 7 2011, 10:15 777777 Цитата(Alex_1811 @ Feb 7 2011, 13:15) =AD... Feb 7 2011, 11:00 defunct Цитата(Alex_1811 @ Feb 7 2011, 12:15) =AD... Feb 7 2011, 12:50  Slavast Спасибо!
Получилось a=ADC! Feb 11 2011, 08:08 Сергей Борщ Alex_1811 подсказал, как сделать то, что вы хотите... Feb 7 2011, 10:31 firstvald вот несколько по другому:
adc=ADCL+ADCH*0x100;
к... Feb 11 2011, 08:20 _Pasha Цитата(firstvald @ Feb 11 2011, 12:20) во... Feb 11 2011, 08:40  demiurg_spb Народ! Это же стандартная фишка для AVR!
Н... Feb 11 2011, 09:01   Палыч Цитата(demiurg_spb @ Feb 11 2011, 12:01) ... Feb 11 2011, 15:02    demiurg_spb Цитата(Палыч @ Feb 11 2011, 18:02) Зачем ... Feb 11 2011, 15:12     _Pasha Цитата(demiurg_spb @ Feb 11 2011, 18:12) ... Feb 11 2011, 15:54   777777 Цитата(demiurg_spb @ Feb 11 2011, 12:01) ... Feb 14 2011, 10:21    demiurg_spb Перечитайте внимательно еще раз, а уже потом матер... Feb 14 2011, 11:44      _Pasha Цитата(OlegNZH @ Feb 13 2011, 12:39) я пр... Feb 14 2011, 07:54    ae_ Цитата(OlegNZH @ Feb 13 2011, 02:08) А шо... Feb 13 2011, 11:40
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|