Подпрограммы процедуры и подпрограммы функции

Подпрограммы предназначены для выполнения определЈнных действий над внутренними устройствами микроконтроллера, внешними устройствами подключЈнными к ножкам микроконтроллера или числами, хранящимися в памяти этой микросхемы. В любом случае, с точки зрения программы, операции производятся над переменными. Переменные могут быть локальными или глобальными.

Подпрограммы процедуры

Если подпрограмма только осуществляет действия над глобальными переменными, то такая подпрограмма называется процедурой. Эта подпрограмма может осуществлять управление какими-то устройствами или осуществлять какие-либо вычисления. Если производятся вычисления, то результат помещается в глобальную переменную для того, чтобы этим результатом могла воспользоваться другая подпрограмма или основная программа. Пример управления последовательным портом:

  ...
  G_Per=56;
  PeredatByte();
  ...
  G_Per=37;
  PeredatByte();
  ...

/**********************************************
Подпрограмма передачи байта
через последовательный порт
**********************************************/
void PeredatByte(void)
{do;while(TI==0)//Если предыдущий байт передан
 SBUF=G_Per     //то передать очередной байт
}

Рисунок 1. Пример подпрограммы - процедуры.

Часто подпрограмма должна выполнять действия над каким то числом, значение которого неизвестно в момент написания программы. Это число можно передать через глобальную переменную как показано на рисунке 1. Однако намного удобнее использовать подпрограмму с параметрами. На языке высокого уровня вызов такой подпрограммы будет выглядеть следующим образом:

  PeredatByte(56);
  PeredatByte(57);

Рисунок 2. Пример подпрограммы - процедуры с передачей данных через параметр подпрограммы.

Сравните с программой, приведЈнной на рисунке 1. Как по вашему, какая из программ более наглядная? В подпрограмму можно передавать и значительные объЈмы данных, как например:

PeredatStroky("Напечатать строку");

Естественно, что в этом случае сама вызываемая подпрограмма должна быть написана несколько иначе по сравнению с предыдущим случаем.

Подпрограммы функции.

Часто требуется передавать результат вычислений из подпрограммы в основную программу. Для этого можно воспользоваться подпрограммой - функцией. Подпрограмма - функция возвращает вычисленное значение. Пример использования подпрограммы - функции:

Y=sin(x);

Использование подпрограмм-функций позволяет приблизить процесс написания программ к математической записи выражений, которые необходимо вычислить. Использование подпрограмм-функций позволяет увеличить наглядность программ и, в результате, увеличить скорость написания и отладки программ.

Подпрограммы-функции обычно возвращают простые типы переменных, такие как байт, слово или целое значение. Однако при помощи переменной-указателя можно возвращать и более сложные переменные, такие как массивы переменных или строки.


[Назад] [Содержание] [Вперёд]