I've incorporated the use of a timer to my countdown timer. This makes the clock much more accurate.
I basically copied the millisecond_delay function and modified it a bit so that it would time for a second while updating the clock display. It has to be done in increments because the timer can't handle a full second at once.
I can't just do a second wait between updates because the clock display is multiplexed and needs to be constantly updated in order to have more than one digit displayed on it.
Now the timer counts down the seconds, and when finished flashes the zeroes.
And I added the slowly flashing 12:00 display in case I want to build myself a pretend VCR one day
Attached is the updated source code. Again, just create a basic new empty project, and then replace the content of main.c with what is in the file, and it should work perfectly.
If you don't have the clock display attached, it just flashes the star LEDs in neat patterns