Hm, ich bin mit dem Asuro nicht wirklich fit, aber die Probleme mit der Ganggenauigkeit sind bekannt.
Da du keinen Quellcode postest, tippe ich mal drauf, dass du Warteschleifen als Zeitbasis benutzt?

Nix gut. Da kannst du herausrechnen, was du willst, wirklich genau wird das nie funktionieren. Das geht einfacher, wenn du einen Hardwaretimer benutzt.
Somit hast du eine feste, vom Rest nahezu unabhängige Zeittakt-Basis.
Das heisst: wann immer der Prozessor etwas anderes tut als zu "warten", wird delay() ungenau. Ein Hardwaretimer läuft ungerührt weiter, dort musst du lediglich aufpassen, dass du keinen Interrupt (z.B. duch zu lange Interrupthandler-Routinen) verlierst.
Wobei die, wenn ich mich recht entsinne, gepuffert werden, also nicht wirklich verloren gehen. Trotzdem kann sich dadurch natürlich der Zeittakt auch etwas "verschieben, wenn der interrupthandler die Interrupts beispielsweise zu lange sperrt, denke ich.

http://blackstrom.derschwarz.de/avr/avr_uhr/index.shtml

Dort hast du ein bereits fertiges Programm, Basic ist nicht wirklich mein Gebiet, aber _das_ schaut recht gut aus (wobei es einiges mehr kann, schick ist der Empfang des Funk-Zeitsignals).

Musst du halt adaptieren auf den Asuro.

Das hier http://www.mikrocontroller.net/artic...-Tutorial:_Uhr
ist zwar eine Assembler-Umsetzung, dafür aber wird dort schön auf die Probleme mit der Ganggenauigkeit eingegangen und auch gut erklärt, wie sie zustande kommen und teilweise umgangen werden können.

Wenn meine Biene dann ihr Display hat (da schweisse ich grade dran) werd ich das ganz sicher auch mal probieren, wobei die mit ihren 15MHz zumindest rechnerisch Vorteile in der Genauigkeit haben dürfte.

Ansonsten ist so eine Uhr, meiner Meinung nach, eine sehr gute Fingerübung, das wird nur klappen, wenn man leidlich effizient programmiert. Ich hätte dann _später_ gerne noch eine Möglichkeit, sie zu puffern (oder halt ein Funkmodul dazu)..