Перейти к содержанию

dukeparrot

Members
  • Постов

    5
  • Зарегистрирован

  • Посещение

Информация

  • Город
    Рамеское

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    Микроконтроллеры

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения dukeparrot

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Ну вообщем разобрался я, оказывается платка которую я брал на алиэкспресс для прошивки чипа, на ней VCC, AVCC и AREF соединены вместе. Не додумался посмотреть, извиняюсь что побеспокоил по пустякам. Всем спасибо, кто отвечал.
  2. А на нем показывает 5 В, надо было тоже это упомянуть сразу. Я замерял и не понимал почему там такое напряжение, я подумал что у меня чип бракованный, но использовал другой, там так же. В схеме вроде ничего не должно быть такого, она простая: подключен двухстрочный дисплей и потенциометр к ADC0. Питание идет от программатора USBAsp.
  3. Я наверное неправильно проблему описал, меня не поняли. Попробую разъяснить, я сейчас не делаю никакой конвертации в вольты, считываю голые значения с ADC. При выборе внутреннего опорного напряжения 1,1 В, максимальное значение ADC должно давать 1023, у меня при подаче сигнала на ADC0 в 1,1 В, значение ADC показывает 228. Когда потенциометр выкручиваю до 5 В, только тогда я получаю 1023. Вот я хочу узнать, почему так,вроде я выбрал в инициализации что опорник у меня 1,1 В.
  4. Всем, доброго времени суток! Пытаюсь запустить ADC на чипе 328p, чтобы работал от внутреннего опорного напряжения 1,1 В. Инициализирую ADC как положено и описано в даташите, сигнал снимаю с ADC0. Проблема в следующем, по идеи если выставлено опорное напряжение 1,1 В, это будет максимальное значение, которое я могу замерить с порта. Но у меня максимум показывает 5 В, как будто я беру опорное напряжение по питанию. Ниже код инициализации ADC: void init_analog(){ /* Enable clock to write ADC registers */ PRR &= ~(1 << PRADC); ADMUX = (0x03 << REFS0) /* Internal 1.1V Voltage Reference with external capacitor at AREF pin */ | (0 << ADLAR) /* Left Adjust Result: disabled */ | (0x00 << MUX0) /* ADC Single Ended Input pin 0 */; ADCSRA = (1 << ADEN) /* ADC: enabled */ | (1 << ADATE) /* Auto Trigger: enabled */ | (1 << ADIE) /* ADC Interrupt: enabled */ | (0x04 << ADPS0) /* 16 */; ADCSRB = (0x00 << ADTS0) /* Free Running mode */ | (0 << ACME) /* Analog Comparator Multiplexer: disabled */; DIDR0 = 1 << ADC0D /* Disable digital input buffer for ADC0 */; ADCSRA|=(1<<ADSC); } Этот код уже сгенерировал в http://start.atmel.com , до этого сам писал свой, смотрел чужой. Либо я что-то не так делаю, либо не понимаю как это работает. Вообщем прошу направить.
×
×
  • Создать...