Proteus + attiny25. Не обновляется значение АЦП.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Proteus + attiny25. Не обновляется значение АЦП.

Сообщение a_skr »

Имеется проект на attiny25 (работает).
Вырезка из кода:

Код: Выделить всё

void main(void)
{
  uint16_t adc;
  ...
  ADMUX = (1<<MUX1) | (1<<MUX0); // PB3
  DIDR0 = (1<<ADC3D);
  ADCSRA = (1<<ADEN) | (1<<ADSC) | (1<<ADATE) | // enable, start, auto trigger
           (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // clk/128
  ...
  while(1)
  {
    adc = ADC;

    if(adc < 823) 
    {
       ...
    }
  }
}
Проблема в Proteus 7.7 SP2 заключается в том, что реакция на изменение напряжения на PB3 происходит только при перезапуске симуляции (стоп, старт).
1212121.jpg
(37.54 КБ) 592 скачивания
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение ARV »

интересно ваше утверждение - "есть проект - работает". если работает - почему вопросы?

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

Мой уютный бложик... заходите!
Реклама
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение a_skr »

ARV писал(а):интересно ваше утверждение - "есть проект - работает". если работает - почему вопросы?

вы запустили АЦП один раз и хотите непрерывно получать из него меняющиеся данные? не выйдет...
Работает в железе.
Почему не выйдет?
ADCSRA <- ADATE - autotrigger mode
ADTS2..0 = 0 - free running mode
см. datasheet
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение ARV »

ну, помнить наизусть все режимы - это я, конечно, не помню... а код выглядел странно. но вообще говоря, ни разу не встречал такого, чтобы чтение ADC делалось не взирая на состояние процесса измерения... обычно считывание делают только ПОСЛЕ завершения преобразования...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение a_skr »

А что такого страшного в чтении значения (предыдущего) до конца преобразования?
В данном случае мне без разницы.

Я давал проект на mega8: http://radiokot.ru/forum/viewtopic.php?f=20&t=37439 (в самом низу страницы), так он в протеусе нормально работает в free running mode.
Реклама
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение Roman Venom »

a_skr
так он в протеусе нормально работает в free running mode.
В протеусе часто работает то что в реале не работает/работает не так. АЦП тут лидирует:)
автор имеет в виду режим Auto Trigger Enable (ADATE)? Посмотрите регистр SFIOR.
Вложения
ADATE(ADFR).JPG
(94.84 КБ) 377 скачиваний
Успех - императив!
Реклама
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение a_skr »

Roman Venom писал(а):a_skr
так он в протеусе нормально работает в free running mode.
В протеусе часто работает то что в реале не работает/работает не так. АЦП тут лидирует:)
автор имеет в виду режим Auto Trigger Enable (ADATE)? Посмотрите регистр SFIOR.
http://radiokot.ru/forum/viewtopic.php?f=20&t=37439 - на практике не проверено. но в протеусе работает. делаю акцент на FREE RUNNING MODE (режим непрерывного преобразования).

начало этой темы - в железе работает, в протеусе - нет. вот почему тему создал.

ADATE - я так понял, нужно устанавливать (повторюсь, в железе работает).

ps. SFIOR - такого нету в tiny25 :))
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение Roman Venom »

a_skr
ADATE - я так понял, нужно устанавливать (повторюсь, в железе работает).
По "тини" не могу подсказать... В мегах надо настраивать SFIOR, тогда ADATE работает адекватно.
повторюсь, в железе работает
Ну тогда остаётся только поздравить:). Если так интересен этот режим, то можно взять мегу и поиграться с ним в полной мере.
Успех - императив!
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение nictrace »

вот и я напоролся.
все симуляторы упорно сбрасывают злосчастный бит.
А когда без прерываний делал, опросом флажка - все работало :(
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Re: Proteus + attiny25. Не обновляется значение АЦП.

Сообщение nictrace »

бред какой-то! :evil:
http://www.avrfreaks.net/index.php?name ... c&p=670732

корифеи пишут, мол, не пользуйте free-run в режиме прерываний!
Типа, проверяйте флажок и в случае завершения преобразования забирайте результат!
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»