перечитайте эту страницу еще раз внимательно.
перечитал - я уже несколько раз разными способами задал один вопрос, а мне никак не могут полноценно ответить. Только вот "прочитай стопицот книг, чтобы научиться одной из популярных вещей". Не смешно, согласен, начинает надоедать.
Хочется верить, что в Си всё же есть подпрограммы (или аналоги), и здесь кто-то знает, как ими пользоваться. Подожду помощи
Добавлено спустя 50 минут 26 секунд:Нашёл
аналогичную тему, но там всё-таки подсказали.
Значит вот мой пример, чтобы я понял, правильно я понял:
- Код: Выделить всё • Развернуть
#include <mega8.h>
#include <delay.h>
unsigned char Temp;
qwerty1() // функция "do"
{
Temp = 1;
if(Temp==PIND.0)
{
if(Temp==PIND.1 || Temp==PIND.2)
{
goto Fast_Burning;
};
return;
};
Temp = 0;
return;
}
while (1 != 1);
void main(void)
{
DDRB = 0b00000001;
DDRD = 0b00000000;
PORTD = 0b00000111;
again:
qwerty1(); // вызываем "подпрограмму" "qwerty1"
if(Temp==1)
{
PORTD.0 = 1;
goto again;
};
PORTD.0 = 0;
goto again;
Fast_Burning:
PORTD.0 = 1;
delay_ms(60); // задержка
PORTD.0 = 0;
delay_ms(60); // задержка
goto again;
}
Эта программа должна работать так:
- Если ножка PD0 соединена с землёй, и если ни одна из ножек PD1 и PD2 не соединены с землёй, то подать напряжение на ножку PB0.
- Если ни одна из ножек (PD0, PD1, PD2) не соединены с землёй, то убрать напряжение с ножки PB0.
- Если ножка PD0 соединена с землёй, а так же если хотя бы одна из ножек PD1 и PD2 соединены с землёй, то "поморгать" (метка: Fast_Burning).
Правильно ли я всё сделал
? (если нет -
пожалуйста, поправьте)