Programski kod sata/brojača. Izveden pomoću 4 tipkala i LCD zaslonom rezolucije 16x2 točaka.

Dependencies:   mbed Bljeskalica TextLCD

Prikaz trenutnog vremena i datuma na LCD zaslonu rezolucije 16x2 točaka. U gornjem redu prikazuje se datum u formatu: dan/mjesec/godina, a u donjem redu vrijeme u formatu: sat/minuta/sekunda. Podešenje vremena i datuma je pomoću tipkala i to u inkrementima po 1 (sekunda, minuta, sat, dan, mjesec, godina).

Committer:
dariojankovic
Date:
Thu Jun 11 22:28:08 2020 +0000
Revision:
0:1c9b141ec08b
Proba

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dariojankovic 0:1c9b141ec08b 1 #include "mbed.h"
dariojankovic 0:1c9b141ec08b 2
dariojankovic 0:1c9b141ec08b 3 InterruptIn DAN_SAT (p5);
dariojankovic 0:1c9b141ec08b 4 InterruptIn MJESEC_MINUTA (p6);
dariojankovic 0:1c9b141ec08b 5 InterruptIn GODINA_SEKUNDA(p7);
dariojankovic 0:1c9b141ec08b 6 InterruptIn DATUM(p8);
dariojankovic 0:1c9b141ec08b 7 InterruptIn VRIJEME(p9);
dariojankovic 0:1c9b141ec08b 8
dariojankovic 0:1c9b141ec08b 9 Ticker STOPERICA;
dariojankovic 0:1c9b141ec08b 10 Timer debounce;
dariojankovic 0:1c9b141ec08b 11
dariojankovic 0:1c9b141ec08b 12 uint32_t offset = 0;
dariojankovic 0:1c9b141ec08b 13 int UVIJET = 0;
dariojankovic 0:1c9b141ec08b 14
dariojankovic 0:1c9b141ec08b 15 void vrijeme();
dariojankovic 0:1c9b141ec08b 16
dariojankovic 0:1c9b141ec08b 17
dariojankovic 0:1c9b141ec08b 18 void toggle_DAN_SAT(){
dariojankovic 0:1c9b141ec08b 19 if(debounce.read_ms()>250) {
dariojankovic 0:1c9b141ec08b 20 switch (UVIJET) {
dariojankovic 0:1c9b141ec08b 21 case 1: offset+=86400;
dariojankovic 0:1c9b141ec08b 22 break;
dariojankovic 0:1c9b141ec08b 23 case 2: offset+=3600;
dariojankovic 0:1c9b141ec08b 24 break; }
dariojankovic 0:1c9b141ec08b 25 debounce.reset();
dariojankovic 0:1c9b141ec08b 26 vrijeme(); }
dariojankovic 0:1c9b141ec08b 27 }
dariojankovic 0:1c9b141ec08b 28
dariojankovic 0:1c9b141ec08b 29 void toggle_MJESEC_MINUTA() {
dariojankovic 0:1c9b141ec08b 30 if(debounce.read_ms()>250) {
dariojankovic 0:1c9b141ec08b 31 switch (UVIJET) {
dariojankovic 0:1c9b141ec08b 32 case 1: offset+=2678400;
dariojankovic 0:1c9b141ec08b 33 break;
dariojankovic 0:1c9b141ec08b 34 case 2: offset+=60;
dariojankovic 0:1c9b141ec08b 35 break; }
dariojankovic 0:1c9b141ec08b 36 debounce.reset();
dariojankovic 0:1c9b141ec08b 37 vrijeme(); }
dariojankovic 0:1c9b141ec08b 38 }
dariojankovic 0:1c9b141ec08b 39
dariojankovic 0:1c9b141ec08b 40 void toggle_GODINA_SEKUNDA() {
dariojankovic 0:1c9b141ec08b 41 if(debounce.read_ms()>250) {
dariojankovic 0:1c9b141ec08b 42 switch (UVIJET) {
dariojankovic 0:1c9b141ec08b 43 case 1: offset+=31622400;
dariojankovic 0:1c9b141ec08b 44 break;
dariojankovic 0:1c9b141ec08b 45 case 2: offset+=1;
dariojankovic 0:1c9b141ec08b 46 break; }
dariojankovic 0:1c9b141ec08b 47 debounce.reset();
dariojankovic 0:1c9b141ec08b 48 vrijeme(); }
dariojankovic 0:1c9b141ec08b 49 }
dariojankovic 0:1c9b141ec08b 50
dariojankovic 0:1c9b141ec08b 51 void toggle_DATUM() {
dariojankovic 0:1c9b141ec08b 52 if(debounce.read_ms()>250) {
dariojankovic 0:1c9b141ec08b 53 if (UVIJET<=1){
dariojankovic 0:1c9b141ec08b 54 UVIJET+=1; }
dariojankovic 0:1c9b141ec08b 55 else UVIJET=0;
dariojankovic 0:1c9b141ec08b 56 debounce.reset(); }}