Понятие подпрограммы Печать

Вернуться к оглавлению

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

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

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

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

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

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

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

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

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

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

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

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

Y=sin(x);

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

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

Вернуться к оглавлению