Hallo Jungs!
Ich habe erneut ein Problem mit Schieberegistern (74HC595). Ich bin momentan dabei eine Qlocktwo nachzubauen und habe dazu einen AtMega8 mit 3 kaskadierten Schieberegistern beschaltet ohne das SPI Interface zu nutzen. Hinter den Schieberegistern hänge 3 Transistorarrays (ULN2981).
Ich nutze von den 24 Ausgängen die mir nun zur verfügung stehen 20 um die einzelnen Worte der Uhr anzusteuern allerdings harkt es jetzt an der Software realisierung.
Die Uhr ist ja in 5 Minuten Schritten genau, sodass ich im Programm die Schieberegister alle 5 Minuten neu beschreiben muss allerdings stellt sich folgendes Problem:
Ich habe eine Stundenvariable, eine Minutenvariable und eine Sekundenvariabele die durch einen Timer hochgezählt werden. Jetzt muss ich allerdings jeweils die Bitmuster irgendwo speichern die zur jeweiligen Uhrzeit gehören. Da jede Stunde 12 unterschiedliche Bitmuster benötigt wären das also 12*12 Bitmuster und ich kann ja schlecht 144 If abfragen hintereinander machen wie z.b. so:

if (Stunden == 12 && Minuten == 0 && Minuten < 5)
{
Bitmuster für 12:00 ausgeben
}
if (Stunden == 12 && Minuten > 4 && Minuten < 10)
{
Bitmuster für 12:05 ausgeben
}
...
...

Das muss doch irgendwie einfacher gehen. Hat da jemand einen Tipp für mich? Ist es hier sinnvoll die 144 Bitmuster mit Hilfe von DATA abzuspeichern und darauf zuzugreifen? WIe genau müsste das aussehen.

Ich hab einfach keine andere Idee wie das sonst zu realisieren wäre ohne die 144 If abfragen.

Danke für eure Hilfe!