Например TDA7294

Форум РадиоКот • Просмотр темы - проблема с программой термометра.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 19, 2025 17:49:18

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 13:50:05 
Открыл глаза

Зарегистрирован: Сб фев 13, 2010 10:31:39
Сообщений: 41
Рейтинг сообщения: 0
В архиве модель в протеусе и проект cvavr не могу разобраться в чём проблема, не выводится температура на дисплей.


Вложения:
tt.rar [103.39 KiB]
Скачиваний: 119
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 14:11:47 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 33
Зарегистрирован: Пт июн 04, 2010 17:40:13
Сообщений: 544
Откуда: Непокорный город-герой Севастополь
Рейтинг сообщения: 0
У тебя нету вот этой строчки:
#asm ("sei");
которая должна стоять после вот этого:
SFIOR=0x00;

Потом попробуй выводить посимвольно на дисплей с помощью вот этой процедуры:
lcd_putchar();

Надеюсь у тебя есть книга "Code Vision AVR пособие для начинающих" Лебедев М.Б. Если нет, то возми тут или тут

_________________
Даже у стен есть уши...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 16:31:32 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4594
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
У тебя нету вот этой строчки:
#asm ("sei");
Интересно, а зачем она нужна, можете растолковать ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 17:55:25 
Встал на лапы

Зарегистрирован: Пт июл 09, 2010 17:44:34
Сообщений: 81
Откуда: Татарстан, г. Казань
Рейтинг сообщения: 0
#asm("sei") // Разрешить ГЛОБАЛЬНО все прерывания


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 18:07:21 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
#asm("sei") // Разрешить ГЛОБАЛЬНО все прерывания
stenkodv писал(а):
В архиве модель в протеусе и проект cvavr не могу разобраться в чём проблема, не выводится температура на дисплей.
.. самое "забавное" то, что стандартная библиотека cvavr работает с DS18b20 именно при выключенных #asm("cli") прерываниях :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 18:39:40 
Открыл глаза

Зарегистрирован: Сб фев 13, 2010 10:31:39
Сообщений: 41
Рейтинг сообщения: 0
Да по моему не причём тут #asm ("sei"); я вместо while(devices>0) поставил просто while(1) в результате на lcd появилось -9999.65527, куда теперь копать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 18:50:04 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Цитата:
в результате на lcd появилось -9999.65527, куда теперь копать?
... перевести это -9999.65527 в температуру :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 19:00:07 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Код:
w1_init();

// Determine the number of DS1820 devices
// connected to the 1 Wire bus
ds1820_devices=w1_search(0xf0,ds1820_rom_codes);

// LCD module initialization
lcd_init(16);

while(ds1820_devices>0)                 //бесконечный цикл, если датчик подключон
      {
          temp=ds18b20_temperature(0);  //читаем температуру
          if (temp>1000){               //если датчик выдаёт больше 1000
             temp=4096-temp;            //отнимаем от данных 4096
             temp=-temp;                //и ставим знак "минус"
          }       
          sprintf(lcd_buf,"t=%i.%u\xdfC",temp,temp%10);    //записуемв масив для экрана температуру и всё такое
          lcd_clear();                //чистим дисплей перед выводом
          lcd_puts(lcd_buf);        //выводим масив на LCD
          delay_ms(500);              //ждём 500мс
      };
}



Все работает. Врет правда как сивый мерен.

Да еще у Вас в Протеусе фузы на какую частоту выставлены?




P.S.
Вопрос: почему мне жутко не нравится эта строка?
temp=ds18b20_temperature(0); //читаем температуру

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Вс фев 20, 2011 21:07:46 
Открыл глаза

Зарегистрирован: Сб фев 13, 2010 10:31:39
Сообщений: 41
Рейтинг сообщения: 0
Danko писал(а):
Да еще у Вас в Протеусе фузы на какую частоту выставлены?

Спасибо, если честно я не думал что в протеусе это важно. раньше ни когда не ставил и всё работало.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Сб фев 26, 2011 00:13:10 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 03, 2011 16:13:09
Сообщений: 34
Рейтинг сообщения: 0
Да не обидится на меня топик стартер, за то, что задам вопрос здесь.
За основу проекта взял проект Danko "Термометр меньше не бывает". Бывает, на Tiny24 и 2ух разрядном семисегментнике :))
Собрал прошивку, но где-то косяк с индикацией - температуры от -19 до -12 не корректно отображаются - исчезает сегмент g во втором разряде :(
Подскажите куда копать, пожалуйста.

Забыл написать... На железе пока не порверял :oops: - только в Протеусе - учусь еще программы пересобирать/писать/редактировать :oops:


Вложения:
19.png [143.59 KiB]
Скачиваний: 362
-14.png [142.61 KiB]
Скачиваний: 367
Attiny24 Therm.rar [96.42 KiB]
Скачиваний: 135
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема с программой термометра.
СообщениеДобавлено: Пн фев 28, 2011 19:17:47 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 03, 2011 16:13:09
Сообщений: 34
Рейтинг сообщения: 0
Нашел косяк! :))
Не учел, что в данном МК PORTB.3 - это альтернативная функция RESET'a, активируемая программированием фьюза RSTDISBL. Правда, это делает невозможным дальнейшее программирование МК через простейший прогамматор на LPT-порт :(


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y