реклама на сайте
подробности

 
 
> Одновременная работа DS1820 и кнопок
zheka
сообщение Dec 30 2006, 19:35
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Доброго времени суток и с наступаюищм всех новым годом!

Собрал я платку, подключил 5 кнопочек, реализовал их обработку в цикле. Потом прикрутил датчик DS1820, помучился 3 дня - работает! Запускаю все вместе - фиг там. Дело в том, что измерение температуры я тоже запихал в цикл. ИЗмерение длится 200 мс, анализ состояния кнопок - мизер. Далее начинается следующий цикл. В итоге, вероятность того, что программ в момент нажатия кнопки будет в месте определения состояиня кнопок крайне мала. Как сделать?

Подозреваю, что как-то надо прерывание организовать от кнопок, и черт, с ним, жертвовать данными измерения температуры в момент нажатия. Но как это практически? Помогите советом и кодом.

Пишу в CodeVision. У меня это примерно так:

Код
void main()
{
DisplayInit();
devices=w1_search(0xf0,rom_code);

while (1)
      {
        temp=ds1820_temperature_101(&rom_code[0][0]);
       Display(temp>>1,(temp&0x01)*50);
      

// Анализируем кнопки

if (PINB.0==0)
{
   delay_ms(20);
    if (PINB.0==1)  HeaterOn=1;    

  }

if (PINB.0==1)
  {
  if (HeaterOn==1)  
  {
    HeaterIn=0;
    HeaterState=~HeaterState;
  }

}

}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016