Stap 7: De weergave code
De display () functie werkt door te controleren zwenking als de uren variabele kan worden gedeeld door 16, als het kan, zal het weer op de LED vertegenwoordigen 16, anders op vandoor. Probeer vervolgens verdelen de rest van de vorige afdeling met 8, draai de geleide 8 op als het kan worden verdeeld, anders uit, verdeel de rest van deze deling met 4 en zo verder. Hetzelfde proces wordt dan herhaald voor minuten maar begin bij 32 in plaats van 16.
display () maakt gebruik van de hours_p en minutes_p pointers, die verwijst naar zowel de variabelen uren en minuten, of tot de variabelen alarm_hours en alarm_minutes. Wat ze verwijzen naar is besloten in de code van de schakelaar instellingen (in de buttons()-functie). Dus wanneer de schakelaar is wendde zich tot een (alarm), het display toont automatisch de alarmtijd, en wanneer het terug aan de T (tijd) wordt gedraaid aan de huidige tijd worden getoond.
____________________________________________________________________
De display () functie:
"INTERNE" VARIABELEN VOOR DISPLAY FUNCTIE:
int de rest;
int led_value;
VOID display)
{
display () wordt weergegeven op de gewone tijd of alarm,
afhankelijk van welke hours_p aanwijst, wordt dit beslist
door de settings_switch_state, in de buttons()-functie
/ / Uren-display:
rest = * hours_p;
voor (int i = 0; ik < 5; i ++) / / repeat vier alle vijf uur-LEDs
{
led_value = 16/round(pow(2,i)); eerst leidde = 16, tweede = 8, derde = 4 enz.
als (rest/led_value == 1)
digitalWrite (hour_pins [i], hoge);
anders
digitalWrite (hour_pins [i], laag);
/ / de rest van de uren is opgeslagen voor
de volgende LED die een lagere waarde wordt weergegeven
rest = rest % led_value;
}
/ / Minuten-display:
rest = * minutes_p;
for (int i = 0; ik < 6; i ++) / / herhaal dit voor alle zes minuten-LEDs
{
led_value = 32/round(pow(2,i)); eerste 32 en 16, dan 8 enz.
als (rest/led_value == 1)
digitalWrite (minute_pins [i], hoge);
anders
digitalWrite (minute_pins [i], laag);
/ / de rest van de notulen is opgeslagen voor
de volgende LED die een lagere waarde wordt weergegeven
rest = rest % led_value;
}
}
____________________________________________________________________