ADC в PIC

Feb 09, 2004 6 Replies

Привет, All!



Работал с АЦП в PIC16f876, пытался реализовать все 10 разрядов, но как ни крутил, в регистрах ADRESL и ADRESH одно и тоже (старшие 8 бит). Пробовал выравнивать влево и вправо, в итоге тоже самое. Отдельного регистра, указывающего на разрядность не нашел. Подскажите пожалуйста в чем может быть дело?



Dmitry Olshansky


Hello, Dmitry Olshansky !

Может регистры в хидере неправильно описаны?

С уважением, Дима Орлов.

Hi Dmitry, hope you are having a nice day!

09 Фев 04, Dmitry Olshansky wrote to All:

DO> Работал с АЦП в PIC16f876, пытался реализовать все 10 разрядов, но как DO> ни крутил, в регистрах ADRESL и ADRESH одно и тоже (старшие 8 бит). DO> Пробовал выравнивать влево и вправо, в итоге тоже самое. Отдельного DO> регистра, указывающего на разрядность не нашел. Подскажите пожалуйста DO> в чем может быть дело?

Похоже ты (или компилятор) забываешь переключить банки памяти, т.к., если я не ошибаюсь, ADRESL и ADRESH находятся по одному и тому же адресу, но в разных банках.

WBR, AVB

ICQ# 43835774 mailto: avb<at>dialup.etr.ru

Пpивет, Dmitry!

*** 09 Feb 04 22:15, Dmitry Olshansky wrote to All:

DO> Работал с АЦП в PIC16f876, пытался реализовать все 10 разрядов, но как DO> ни крутил, в регистрах ADRESL и ADRESH одно и тоже (старшие 8 бит).

Как так ? Hу не может быть в ADRESL 8 старших, как не крути. Похоже, ты с переключением страниц запутался (это привет от совместимости со старыми кристаллами)...

с уважением Владислав

Привет, Alexey!

А именно <10 Feb 04><00:07>

DO>> тоже самое. Отдельного регистра, указывающего на разрядность не DO>> нашел. Подскажите пожалуйста в чем может быть дело?

AB> Похоже ты (или компилятор) забываешь переключить банки памяти, т.к., AB> если я не ошибаюсь, ADRESL и ADRESH находятся по одному и тому же AB> адресу, но в разных банках.

Скорее всего так и есть. Будем пробовать. Спасибо.

Dmitry Olshansky

Hi Dmitry !

Совсем недавно 09 Feb 04 22:15, Dmitry Olshansky писал к All:

DO> Работал с АЦП в PIC16f876, пытался реализовать все 10 разрядов, но как DO> ни крутил, в регистрах ADRESL и ADRESH одно и тоже (старшие 8 бит). Кусок исходника, плиз. И инициализации АЦП, и запуска, и вычитки значения.

DO> Пробовал выравнивать влево и вправо, в итоге тоже самое. Отдельного DO> регистра, указывающего на разрядность не нашел. Подскажите пожалуйста DO> в чем может быть дело? А есть зависимость значения от величины входного сигнала? Сходу: если одно и то же значение, то вариантов два:

  1. Ты не переключаешь страницы RAM и дважды читаешь ту же ячейку.
  2. Ты вообще не из тех адресов читаешь.

Вариантов неработы устройства- всегда масса :)

WBRgrds Ruslan

Привет, Ruslan!

А именно <24 Feb 04><14:18>

DO>> но как ни крутил, в регистрах ADRESL и ADRESH одно и тоже DO>> (старшие 8 бит). RM> Кусок исходника, плиз. И инициализации АЦП, и запуска, и вычитки RM> значения.

Чет ты поздно :) А вообще решилось принудительной установкой прескалера в 1/32 (по умолчанию стоит 1/2) на обработку АЦП.

Dmitry Olshansky

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required