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).
Revision 0:1c9b141ec08b, committed 2020-06-11
- Comitter:
- dariojankovic
- Date:
- Thu Jun 11 22:28:08 2020 +0000
- Commit message:
- Proba
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Bljeskalica.lib Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/dariojankovic/code/Bljeskalica/#93d73c414233
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,24 @@ +#include "main.h" + +int main() { + + DAN_SAT.mode(PullUp); + MJESEC_MINUTA.mode(PullUp); + GODINA_SEKUNDA.mode(PullUp); + DATUM.mode(PullUp); + VRIJEME.mode(PullUp); + + debounce.start(); + DAN_SAT.fall(&toggle_DAN_SAT); + MJESEC_MINUTA.fall(&toggle_MJESEC_MINUTA); + GODINA_SEKUNDA.fall(&toggle_GODINA_SEKUNDA); + DATUM.fall(&toggle_DATUM); + + led.flash(5); + + LCD.cls(); + + while(1) { + ZASLON(); + wait(1); } + } \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.h Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,33 @@ +#include "mbed.h" +#include "TextLCD.h" +#include "Flasher.h" +#include "tipkala.h" + +TextLCD LCD (p19, p20, p21, p22, p23, p24); //RS,E,D0,D1,D2,D3 + +Flasher led(LED1); + +int MENU = 0; + +void ZASLON(); + +void vrijeme() { + set_time(1577836800+offset); } + +void ZASLON() { + time_t seconds = time(NULL); + + if (MENU==0) { + LCD.cls(); + LCD.locate(2,0); + char day[16]; + + strftime(day, 16, "%d/%m/%y %a\n", localtime(&seconds)); + LCD.printf("%s", day); + + char time[16]; + strftime(time, 16, "%H:%M:%S\n", localtime(&seconds)); + LCD.locate(4,1); + LCD.printf("%s", time);} +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tipkala.h Thu Jun 11 22:28:08 2020 +0000 @@ -0,0 +1,56 @@ +#include "mbed.h" + +InterruptIn DAN_SAT (p5); +InterruptIn MJESEC_MINUTA (p6); +InterruptIn GODINA_SEKUNDA(p7); +InterruptIn DATUM(p8); +InterruptIn VRIJEME(p9); + +Ticker STOPERICA; +Timer debounce; + +uint32_t offset = 0; +int UVIJET = 0; + +void vrijeme(); + + +void toggle_DAN_SAT(){ + if(debounce.read_ms()>250) { + switch (UVIJET) { + case 1: offset+=86400; + break; + case 2: offset+=3600; + break; } + debounce.reset(); + vrijeme(); } + } + +void toggle_MJESEC_MINUTA() { + if(debounce.read_ms()>250) { + switch (UVIJET) { + case 1: offset+=2678400; + break; + case 2: offset+=60; + break; } + debounce.reset(); + vrijeme(); } + } + +void toggle_GODINA_SEKUNDA() { + if(debounce.read_ms()>250) { + switch (UVIJET) { + case 1: offset+=31622400; + break; + case 2: offset+=1; + break; } + debounce.reset(); + vrijeme(); } + } + + void toggle_DATUM() { + if(debounce.read_ms()>250) { + if (UVIJET<=1){ + UVIJET+=1; } + else UVIJET=0; + debounce.reset(); }} \ No newline at end of file