Stap 4: Shift registers
Recht op dit moment hebben wij drie waarden:-
minFivesBar1 (8 bits gebruikt voor LSB van de tweede rij)
minFivesBar2 (3 bits gebruikt voor de MSB van de tweede rij)
minBar (4 bits gebruikt voor de eerste rij)
Nu wil ik alleen 3 shift om registers te gebruiken dus ik moet naar de minBar en de minFivesBar combineren in hetzelfde register ingeschreven blijft, die gelukkig gemakkelijk is te doen.
Bestand draaien de minBar 3 keer en toevoegen aan het register.
dat wil zeggen
Dat laat een laatste positie in de 8-bit register en dat zal worden gebruikt voor de tweede pols, en geïmplementeerd door om te bepalen waar de seconden is even of oneven en vervolgens 128 toe te voegen aan het bestand zoals vereist. De code ziet er ongeveer zo uit...
zoals ik aan het schrijven was dit leek het niet correct zodat op het einde ik niet alleen als het nummer was zelfs maar ook als het controleren (en) groter is dan 128.
De uren weer moet, om te beginnen worden gedeeld door 5 dan werken de modulus Hiermee krijgt u de twee getallen, dan als voor het werk van de "running" totale en vervolgens winkel de twee 4 bits waarden in één registreren door bestand roterende één waarde 4 keer zo neemt de 4 MSB en toe te voegen aan de ander aantal die in de 4 LSB.
De opdracht voor het besturen van het 595 seriële register is zeer eenvoudig, en zijn 4 argumenten nodig.
welke pin te gebruiken voor gegevens
welke pin te gebruiken voor de klok
of voor het eerst verzenden van MSB of LSB
Gegevens worden verzonden.
Zodra de opdracht is uitgevoerd moet de gegevens worden vergrendeld door de relevante klink pin laag instelt dan hoog.
Aanpassing
Ik was niet echt zeker hoe ik ging om te passen deze klok toen ik begon te bouwen, maar toen besloot ik dat want ik had genoeg input reserve zou ik heb 4 knoppen en een schakelaar en het genereren van een sub routine om in te stellen van de RTC afhankelijk van welke knop is ingedrukt. Ik heb ook een GPS-klok die kan worden gebruikt voor het vergelijken van de RTC
GPS en juiste als nodig (maar dat is voor een ander instructable!)