#include <mega16>
#include <DELAY>
#define SET_B5 |=(1<<5) //определения для битовых операций
#define CLR_B5 &=~(1<<5)
char abc; //объявил переменную
//ниже функция "цикл" исполняется пока переменная менее 5 (светодиод мигает раз в секунду)
cikle(){
while (abc<5){
PORTA SET_B5; //в бит 5 пишется 1-гасится светодиод
delay_ms(1000); //ждем секунду
abc=abc+1; //добавим 1 к переменной
PORTA CLR_B5; //очищается бит 5 - загорается светодиод
delay_ms(1000); //ждем секунду
};
}
void main(void)
{
while (1){
cikle();
PORTA=0; //после выхода из цикла зажигаются светодиоды порта
delay_ms(2000); //ждем 2 секунды, светодиоды горят
abc=0; //очищается значение переменной
PORTA=255; //тушатся все светодиоды и go снова в цикл мигания всетодиода
};
}
что делает: светодиод мигает 5 раз, затем загораются все 8, тухнут, и цикл повторятся. строки инициализации порта я не приводил, там ничего интересного.
Вопрос по функциям. Если функция с параметром void то написано она ничего не возвращает, что значит слово "возврат значения"??? То что при выполнении функции cikle она увеличивает значение внешней переменной abc???--вроде нет, я ее сделал с параметрами void-ничего не изменилось... Расскажите доходчиво и с примером, если можно конечно.


