Добавить логический флаг.Когда условие истинно, вы устанавливаете флаг, а когда оно ложно, вы очищаете флаг.
Используйте этот флаг в сочетании с условием, чтобы знать, когда вызывать какую функцию.
Пример:
bool flag = false;
while (1)
{
if (num > 0.5)
{
if (!flag)
{
// First time above the threshold
flag = true;
rise_handler();
}
}
else
{
if (flag)
{
// First time below the threshold
flag = false;
fall_handler();
}
}
}