float x = 0, y = 0;
while (1) {
// Считывание X (KEY1-KEY4 на PORTE)
// Присваиваем значения, чтобы проверить и 2-ю, и 4-ю четверти
if (PORT_ReadInputDataBit(MDR_PORTE, PORT_Pin_0) == 0) x = -4.0f;
if (PORT_ReadInputDataBit(MDR_PORTE, PORT_Pin_1) == 0) x = -2.0f;
if (PORT_ReadInputDataBit(MDR_PORTE, PORT_Pin_2) == 0) x = 2.0f;
if (PORT_ReadInputDataBit(MDR_PORTE, PORT_Pin_3) == 0) x = 4.0f;
// Считывание Y (KEY5-KEY8 на PORTB)
if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_0) == 0) y = -3.0f;
if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_1) == 0) y = -1.0f;
if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_2) == 0) y = 1.0f;
if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_3) == 0) y = 3.0f;
// Нажатие SELECT (PORTC пин 0)
if (PORT_ReadInputDataBit(MDR_PORTC, PORT_Pin_0) == 0) {
// ТВОЯ МАТЕМАТИКА (ВАРИАНТ №8):
// 1. Вне круга R=2: (x*x + y*y >= 4.0f)
// 2. Только 2-я (x<0, y>0) и 4-я (x>0, y<0) четверти: (x*y <= 0)
if ( ((x*x + y*y) >= 4.0f) && (x * y <= 0) )
{
Blink(1); // Попал
}
else
{
Blink(2); // Не попал
}
// Ждем отпускания SELECT
while(PORT_ReadInputDataBit(MDR_PORTC, PORT_Pin_0) == 0);
}
}