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).
tipkala.h@0:1c9b141ec08b, 2020-06-11 (annotated)
- Committer:
- dariojankovic
- Date:
- Thu Jun 11 22:28:08 2020 +0000
- Revision:
- 0:1c9b141ec08b
Proba
Who changed what in which revision?
User | Revision | Line number | New 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(); }} |