Проблема с градусником (LM35dz)

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Проблема с градусником (LM35dz)

Сообщение bloodaxe » 15 мар 2010, 21:25

Всем привет. Помогите разобратся с градусником. Проблема в том, что вывод температуры на семесигментник чё-то каряво пашет. Температура выводится что 2 градуса т.е 2, 4, 6, ... , 98, 100. Немогу понять где пропадают остальные показания.
[youtube] http://www.youtube.com/watch?v=kATHA_UTvMg [/youtube]
Вложения
7segment_indicator.rar
Мк-atmega8, прога на avr_studio 4.0.
(70.43 КиБ) Скачиваний: 1
bloodaxe
 
Сообщения: 80
Зарегистрирован: 30 мар 2007, 15:00
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.

Re: Проблема с градусником (LM35dz)

Сообщение avr123.nm.ru » 15 мар 2010, 21:32

В коде можно вставить фиксированые числа или счетчик и убедится что они верно выводятся на индикато - тогда анализировать что с градусника принимаете. Любо если индикатор фаольшивит - его код править.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Проблема с градусником (LM35dz)

Сообщение bloodaxe » 15 мар 2010, 23:49

Пробивал, индикатор отоброжает цифри нормально. Думал ацп неуспевает обработать инфу, повысил частоту-непомогло. Предпологаю что дело может быть в округлении чисел, но мои опыты над этим, к положительному результату так и не привели.
bloodaxe
 
Сообщения: 80
Зарегистрирован: 30 мар 2007, 15:00
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.

Re: Проблема с градусником (LM35dz)

Сообщение boez » 23 мар 2010, 11:31

А что вот это за фигня???

Код: Выделить всё
ADCSRA &(1 << ADSC); // zdiom paka konvertacija zakoncitsa


Ожидание где?

Вообще рекомендую расположить операции наоборот:

Код: Выделить всё
for(;;) {
  чтение ADCH
  старт конверсии
  вывод числа на индикатор
}


Тогда ничего ждять не надо.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Проблема с градусником (LM35dz)

Сообщение bloodaxe » 24 мар 2010, 21:46

Пробывал писать while(!(ADCSRA & (1<<ADSC))); ни чё неменяется..
bloodaxe
 
Сообщения: 80
Зарегистрирован: 30 мар 2007, 15:00
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.

Re: Проблема с градусником (LM35dz)

Сообщение boez » 25 мар 2010, 12:56

bloodaxe писал(а):Пробывал писать while(!(ADCSRA & (1<<ADSC))); ни чё неменяется..


В даташите написано: при чтении бит ADSC равен 1 если преобразование идет, и 0 если завершилось. То есть нужно "пока 1, ждать". А этот while ждет "пока 0", понятное дело он сразу выпадает.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Проблема с градусником (LM35dz)

Сообщение bloodaxe » 25 мар 2010, 14:53

Т.е надо так :while((ADCSRA & (1<<ADSC))); ?
bloodaxe
 
Сообщения: 80
Зарегистрирован: 30 мар 2007, 15:00
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19