Ошибка при компиляции таймера: invalid operands of types. Как быть?
Пробелы вокруг && поставьте.
Этот код отвратителен. Переведите время в минуты и посчитайте остаток от деления. Будет короче и понятнее.
У вас day, minute, hour - локальные переменные функции loop. Делайте их глобальными, а лучше - исправляйте архитектуру так, чтобы глобальные переменные использовались только для передачи данных в обработчики прерываний.
У вас переменные day, hour, minute, second объявлены внутри функции loop(). Поэтому внутри функции testmatch() они не видны, вот компилятор и ругается.