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

 
 
> Структура программы, Вырабатываю хороший стиль программирования
UniBomb
сообщение Mar 18 2009, 11:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416



Добрый день. Возник у меня вопрос, который терзает моё эго и не даёт спокойно работать. Вопрос заключается в организации программы. В общем вот:

Допустим есть ТЗ: сделать прибор, который должен:

- считывать температуру с датчика по шине TWI
- считывать значение напряжения с АЦП с датчика влажности
- расчитывать значение влажности в общепринятых единицах
- выдать предупреждающие сигналы в случае превышения норм
- показать значения на дисплее

Зада просто и понятна (хоть и высосана из пальца). Реализовал бы всё это дело я так:

Код
#include <io.h>
volatile int counter;
int main()
{
//инициализирую всё и вся

for(;;) //пустой бесконечный цикл
;
}

ISR(SIG_OUTPUT_COMPARE1A)
{
switch(counter)
  {
   case 100: BeginTempConvers(); break; //посылаю запрос для начала считывания температуры
   case 200: GetADCValue(); break; //считываю значение с АЦП
   case 300: ProcessADCValue(); break; //раситываю необходимые значения
   case 400: GetTempValue(); break; //считываю температуру
   case 500: SetAlarm(); break; //проверяю значения и вывожу аварийные сигналы если надо
   case 600: DisplayValues(); break; //вывожу все данные на экран
  };

counter++;
if(counter == 601)
  counter = 0;
}


Так вот вопрос - хорошо ли я делаю? Какие есть ещё способы реализации поставленной задачи. Просто мне почему то кажется, что всю логику работы прибора нехорошо запихивать в таймер...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:49
Рейтинг@Mail.ru


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