Checking the accuracy of the RTC to cpu ms time was removed. The accuracy of the cpu ms time is checked against the FPGA ms time. The RTC time is verified against the FPGA ms time.
This looks strange. If we have a empty bottle alarm, shouldn't we just not start a fill in the first place? With this approach, you're just stuck in fill start state until user clears the alarm.