Скачиваний:
32
Добавлен:
03.06.2014
Размер:
3.24 Mб
Скачать

3.1. Метод с использованием условных переходов.

Для заданной функции блок-схема одной итерации алгоритма расчета выглядит следующим образом:

Рис. 2. Блок-схема алгоритма на основе условных переходов.

В качестве комментариев в блок-схеме указаны названия соответствующих меток в программном коде для простоты сопоставления схемы и кода. Программный код для данного алгоритма приведен в листинге 1.

3.2. Метод с использованием булевых операций.

Данный метод представляет собой последовательное использование логических битовых операций над исходными данными. Программная реализация приведена в листинге 2.

3.3. Табличный метод.

Позволяет выдавать на выход заранее предопределенные в таблице данные. При этом входные данные являются адресом строки таблицы. Программная реализация приведена в листинге 3.

3.4. Сравнение методов.

В таблице 3 приведены достоинства и недостатки каждого метода.

Таблица 3.

Метод

Достоинства

Недостатки

Условные переходы

Тяжело реализовывать.

Непостоянная скорость получения результата

Булевы операции

Прост в реализации

Табличный метод

Быстрый при большом количестве переменных

Сложность реализации

Низкая скорость при небольшом числе перемнных

В таблице 4 приведены замеры времени выполнения одной итерации каждого алгоритма.

Таблица 4.

Метод

Время выполнения

Условные переходы

11 – 20 мкс

Булевы операции

16 мкс

Табличный метод

10 мкс

Вывод:

Самый быстрый метод в данных условиях – табличный. Кроме того, он имеет постоянную скорость выполнения одной итерации.

4. Карта распределения адресных пространств.

Память данных:

Адрес

Значение

0x20

Текущая нажатая клавиша на клавиатуре (FF – не нажата)

0x21

Нажата новая клавиша: 0 – не нажата, 1 – можно считывать код клавиши, 2 – повторное считывание, игнорировать (клавиша зажата)

0x22

Текущее набранное значение на клавиатуре (2 байта)

0x23

Параметр K для работы с АЦП.

0x24

Параметр U1

0x25

Параметр U2

0x26

Параметр T1

0x27

Параметр T2

0x28

Параметр T3

0x29

Timer 0 – код операции по переполнению (1 – установить y1 на 100 мкс, 2 – установить y23 на 120 мкс)

0x2A

Предыдущее значение Y1

0x2B

Хранение Q

0х2С

Запрет работы двигателя (bool)

0x2D

Tmin – температура

0x2E

Tmax – температура

0x2F

Средняя температура

0x30

Время работы первого насоса

0x31

Время работы второго насоса

0x32

Предыдущий статус насосов

0x33

Счетчик числа переполнений Timer0 в режиме световой индикации

Память программы:

0000h

Стартовый код

0003h

Обработчик внешнего прерывания 0

000Bh

Обработчик прерывания таймера 0

0013h

Обработчик внешнего прерывания 1

0050h

0378h

Код программы

Всего занято:

Памяти данных: 19 байт + 2 банка регистров (по 8 байт) + стек.

Памяти программы: 903 байта.

Соседние файлы в папке MPRS_Varakin_3303