Я работаю над проектом, в котором я делаю лифт для 4 уровней.
Обычно внутри лифта есть кнопки для выбора желаемого уровня
и кнопки снаружи, чтобы запросить его там, где есть лифт.
Мне нужна реализация C для кнопок за ее пределами. Другими словами, если он поднимается с 1-го этажа на 4-й и я нахожусь снаружи на 2-м этаже, я нажму кнопку, и она остановится. И если я нажму снаружи, он проигнорирует нажатие, продолжит подниматься и вернется ко мне после того, как закончит подниматься.
Возможно, требуется прерывание, или есть более простой способ?
Мой код для внутренних кнопок:
Задайте рабочий цикл для серводвигателя, чтобы тянуть лифт.
void main (void) {
EA = 1; /* Enable global interrupt */
ET0 = 1; /* Enable timer0 interrupt */
Timer_init();
Port_Init();
while(1)
{
if(Level0 == 0 )
{
Set_DutyCycle_To(0.6);
}
else if(Level1 == 0 )
{
Set_DutyCycle_To(1.2);
}
else if(Level2 == 0 )
{
Set_DutyCycle_To(1.9);
}
else if(Level3 == 0 )
{
Set_DutyCycle_To(2.6);
}
else
{
/* do Nothing*/
}
}
}