|
Многопоточность на attiny2313 |
|
|
|
Apr 6 2013, 21:15
|
Частый гость
 
Группа: Участник
Сообщений: 114
Регистрация: 3-10-09
Пользователь №: 52 731

|
Продолжаю изучать программирование под avr. Написал программу "Часы", добавил три кнопки для выставления времени, кнопки обрабатываются по прерыванию от Таймера каждые 0.1 сек, время тикает от того же таймера, все красиво и четко работает. Затем я задействовал термодатчик ds18b20 с шиной 1ware и написал программу для показа температуры на дисплее hd44780, датчик опрашивается по прерыванию от таймера каждые 0.1 сек, прекрасно работает. А затем я решил совместить эти две программы, чтобы часы в одной части дисплея работали, а температура в другой части. Получилось кривенько, при опросе датчика прерывания запрещены, соответственно на нажатия кнопок реакция заторможенная. Подскажите, как бы реализовать подобие многопоточности? Может тут подойдут конечные автоматы? Приветствую список литературы по этому вопросу! А может для attiny2313 вообще это не возможно сделать без тормозов?
Сообщение отредактировал aivs - Apr 6 2013, 21:16
|
|
|
|
|
 |
Ответов
|
Apr 8 2013, 22:36
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Я тоже сразу заметила, что в этой программе пока держишь кнопку нажатой, то висишь в прерывании, а система стоит. Тоже сперва хотела этим возмутиться, но одумалась  . В принципе процесс установки времени не обязан сопровождаться одновременной работой устройства. Например, никто не возмущается тем, что в процессе установки точного времени (перевода часов) на микроволновке в это время нельзя жарить курицу-гриль.  Вот и наручные часы не обязаны соблюдать точность хода, пока им переводят стрелки. А COM-порт соблюдать правильную передачу, в то время, тогда ему переустанавливают боды. Поэтому, наверное, не стоит заставлять топикстатера возиться с этими кнопками, переводя их правильный режим. Поскольку он имеет полное право не рассматривать установочную процедуру, как часть рабочего цикла.
|
|
|
|
Сообщений в этой теме
aivs Многопоточность на attiny2313 Apr 6 2013, 21:15 ILYAUL ЦитатаПолучилось кривенько, при опросе датчика пре... Apr 6 2013, 21:52 Xenia Цитата(aivs @ Apr 7 2013, 01:15) Получило... Apr 6 2013, 23:39 _Артём_ Цитата(Xenia @ Apr 7 2013, 02:39) что нел... Apr 7 2013, 00:31 aivs В прерывании я опрашиваю три кнопки, и если кнопка... Apr 7 2013, 07:38 Xenia Цитата(aivs @ Apr 7 2013, 11:38) Код // ... Apr 7 2013, 12:23  _Pasha Цитата(Xenia @ Apr 7 2013, 15:23) Возможн... Apr 7 2013, 14:19   Xenia Цитата(_Pasha @ Apr 7 2013, 18:19) Там в ... Apr 7 2013, 14:31    _Pasha Цитата(Xenia @ Apr 7 2013, 17:31) А syste... Apr 7 2013, 14:35 mempfis_ ЦитатаЗадержки с использованием _delay_us и _delay... Apr 7 2013, 12:58 _Pasha Могу сказать, как делаю я.
1. Беру за основу идею,... Apr 7 2013, 09:58 mempfis_ Цитата(aivs @ Apr 7 2013, 01:15) Затем я ... Apr 7 2013, 11:12 _Артём_ Цитата(mempfis_ @ Apr 7 2013, 14:12) Есть... Apr 7 2013, 19:37  mempfis_ ЦитатаПроблемы скорее нет, чем есть.
Разве самому ... Apr 8 2013, 07:31   _basile DATASHEET 2313: "The External Interrupts are ... Apr 8 2013, 07:52    _Pasha Цитата(_basile @ Apr 8 2013, 10:52) Как т... Apr 8 2013, 07:57     _basile Цитата(_Pasha @ Apr 8 2013, 11:57) Вы не ... Apr 8 2013, 08:08      _Pasha Цитата(_basile @ Apr 8 2013, 11:08) И что... Apr 8 2013, 08:22    aivs Цитата(_basile @ Apr 8 2013, 11:52) DATAS... Apr 8 2013, 16:37   _Артём_ Цитата(mempfis_ @ Apr 8 2013, 10:31) Не в... Apr 8 2013, 14:36 aivs Спасибо, уберу из прерывания:
Код_delay_ms(25... Apr 8 2013, 13:36 ARV всем начинающим всегда рекомендую мудрить поменьше... Apr 8 2013, 17:48 _Pasha Цитата(Xenia @ Apr 9 2013, 01:36) Поэтому... Apr 9 2013, 01:23 aivs Цитата(Xenia @ Apr 9 2013, 02:36) Поэтому... Apr 9 2013, 08:17  _Pasha Цитата(aivs @ Apr 9 2013, 11:17) Нет... Apr 9 2013, 09:14  mempfis_ Цитата(aivs @ Apr 9 2013, 11:17) Нет... Apr 9 2013, 09:43   ARV Цитата(mempfis_ @ Apr 9 2013, 13:43) Прос... Apr 9 2013, 10:11    mempfis_ Цитата(ARV @ Apr 9 2013, 13:11) P.S. судя... Apr 9 2013, 14:14
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|