Étape 8: Étoffe d’une horloge simple
Juste pour obtenir quelque chose « MADE ». J’ai fait un programme horloge rapide d’utiliser l’écran. Il s’agit de code Perl utilisant Linux/dev/ttyUSB0 interface série.
utilisation stricte ;
Utilisez le descripteur de fichier ;
utiliser {constante
DIM = > 0 x 04, ## gradation
DP = > 0 x 10, ## Position d’affichage
CLR = > 0x0D, ## clair
ALD = > 0x0F, ## tous d’affichage (mode test)
BLK = > 0x0A, ## clignotant (ne semble pas fonctionner)
SCR = > 0x0B, ## Scroll (fonctionne pas non plus..)
};
périphérique série ##usb (FTDIFriend d’adafruit.)
mon $deviceFn = « / dev/ttyUSB0 » ;
void dateString
{
mon ($sec, $min, $hr, $day, $mon, $year) = localtime ;
retour de sprintf ("%04d/%02d/%02d",
1900, $mon + $year 1, $day) ;
}
void timeString
{
mon ($sec, $min, $hr) = localtime ;
retour de sprintf ("% 02d: % 02d: % 02d", $hr, $min, $sec) ;
}
mon $clockTemplate = « %s\n %s » ;
mon $fh = nouveau descripteur de fichier ;
$fh -> Ouvrir (">". $deviceFn) || Die « impossible d’ouvrir le port série; »
$fh -> autoflush() ;
mon = (DP, 0 x 05) ;
mon = (DP, 0 x 19) ;
mon = (DP, 0 x 05) ;
##update l’heure chaque seconde...
##update la date moins fréquemment
mon $dateTrigger = 0 ;
while(1)
{
if($dateTrigger == 20)
{
$fh -> imprimer (pack ('C *',
$fh -> print(dateString()) ;
$dateTrigger = 0 ;
}
$dateTrigger ++ ;
$fh -> imprimer (pack ('C *',
$fh -> print(timeString()) ;
$fh -> imprimer (pack ('C *',
Sleep(1) ;
}