Étape 7: Affichage code
Les œuvres de fonction display() en vérifiant si les heures variable peut être divisée par 16, s’il le peut, il s’allume la LED qui correspond à 16, sinon le désactiver. Puis essayez de diviser le reste de la division précédente avec 8, tournez le 8-led sur si elle pourrait être divisée, sinon, divise le reste de cette division par 4 et ainsi de suite. Le même processus est ensuite répété pendant minutes mais à partir de 32 au lieu de 16.
Display() utilise les pointeurs hours_p et minutes_p, qui pointe vers soit les variables heures et les minutes, ou vers les variables alarm_hours et alarm_minutes. Ce qu’ils pointent vers est décidé dans le code les paramètres de commutateur (dans la fonction buttons()). Donc lorsque l’interrupteur est tourné vers une (alarme), l’écran affiche automatiquement l’heure de l’alarme, et quand il a été refoulé à T (temps) l’heure s’affichera.
____________________________________________________________________
La fonction d’affichage () :
VARIABLES « INTERNES » POUR LA FONCTION D’AFFICHAGE :
int reste ;
int led_value ;
display() Sub
{
Display() affichera l’heure habituelle ou l’heure de réveil,
selon quel hours_p pointe vers, c’est décidé
par le settings_switch_state, dans la fonction buttons()
/ / Afficher les heures :
reste = * hours_p ;
pour (int i = 0; j’ai < 5; i ++) / / répéter quatre toutes les cinq heures-LED
{
led_value = 16/round(pow(2,i)) ; tout d’abord conduit = 16, second = 8, third = etc. 4.
si (reste/led_value == 1)
digitalWrite (hour_pins [i], HIGH) ;
d’autre
digitalWrite (hour_pins [i], faible) ;
/ / le reste des heures est enregistré pour
la prochaine LED qui affiche une valeur inférieure
reste = reste % led_value ;
}
/ / Afficher les minutes :
reste = * minutes_p ;
pour (int i = 0; j’ai 6 <; i ++) / / répéter pour toutes les six minutes-LED
{
led_value = 32/round(pow(2,i)) ; les 32 premiers, puis 16, puis 8 etc.
si (reste/led_value == 1)
digitalWrite (minute_pins [i], HIGH) ;
d’autre
digitalWrite (minute_pins [i], faible) ;
/ / le reste des minutes est enregistré pour
la prochaine LED qui affiche une valeur inférieure
reste = reste % led_value ;
}
}
____________________________________________________________________