Курс лекций. - Микропроцессоры



             

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


Дата последнего обновления файла 07.06.2005

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

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

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

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

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

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

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

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

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




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