From 42c5e945ec518fd0e41e2bfaae502d503241cd14 Mon Sep 17 00:00:00 2001 From: polymurph Date: Mon, 2 Aug 2021 12:36:36 +0200 Subject: [PATCH] added basic outline --- Makefile | 20 ++++++++++++++++++++ display.cpp | 22 ++++++++++++++++++++++ display.hpp | 26 ++++++++++++++++++++++++++ main.cpp | 12 ++++++++++++ runtest | Bin 0 -> 18208 bytes timer.cpp | 23 +++++++++++++++++++++++ timer.hpp | 21 +++++++++++++++++++++ utils.hpp | 8 ++++++++ 8 files changed, 132 insertions(+) create mode 100644 Makefile create mode 100644 display.cpp create mode 100644 display.hpp create mode 100644 main.cpp create mode 100755 runtest create mode 100644 timer.cpp create mode 100644 timer.hpp create mode 100644 utils.hpp diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c516ac5 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +cpp_src = $(wildcard *.cpp) + +cpp_obj = $(cpp_src:.cpp=.o) +c_obj = $(c_src:.c=.o) +CC = g++ +CFLAGS = -Wall -pedantic -li2c +LDFLAGS = +EXEC = runtest + + +all : $(EXEC) + +$(EXEC): $(cpp_obj) $(c_obj) + $(CC) -o $@ $^ $(LDFLAGS) + +clean: + rm -rf $(c_obj) $(cpp_obj) $(EXEC) + +cleanall: + rm -rf $(c_obj) $(cpp_obj) $(EXEC) diff --git a/display.cpp b/display.cpp new file mode 100644 index 0000000..12045c9 --- /dev/null +++ b/display.cpp @@ -0,0 +1,22 @@ +#include "display.hpp" + +#include +#include"utils.hpp" + +Display::Display() +{ + +} + +void Display::showTime(const uint8_t& minutes, + const uint8_t& secconds) +{ + std::cout << "time: " << + +clip(minutes, 0, 99) <<" : " << + +clip(secconds,0,59)<< std::endl; +} + +void Display::showMode(modes mode) +{ + +} \ No newline at end of file diff --git a/display.hpp b/display.hpp new file mode 100644 index 0000000..9fea960 --- /dev/null +++ b/display.hpp @@ -0,0 +1,26 @@ +#ifndef _DISPLAY_HPP_ +#define _DISPLAY_HPP_ + +#include + +class Display +{ + public: + + enum modes{ + A, + B + }; + + Display(); + + void showTime(const uint8_t& minutes, + const uint8_t& secconds); + + void showMode(modes mode); + + private: + +}; + +#endif // _DISPLAY_HPP_ \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..867bb0b --- /dev/null +++ b/main.cpp @@ -0,0 +1,12 @@ +#include"timer.hpp" + + +int main(void) +{ + + Timer timer; + + timer.run(); + + while(1); +} \ No newline at end of file diff --git a/runtest b/runtest new file mode 100755 index 0000000000000000000000000000000000000000..8322f3dd1944b179b55ff05beff881e2a0732dce GIT binary patch literal 18208 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 RbS3*fwLn1YRCaKX;`ej_&u{<$ literal 0 HcmV?d00001 diff --git a/timer.cpp b/timer.cpp new file mode 100644 index 0000000..3ad16ca --- /dev/null +++ b/timer.cpp @@ -0,0 +1,23 @@ +#include "timer.hpp" + +#include + + +Timer::Timer() +{ + +} + +void Timer::run() +{ + + std::cout << "timer now starting up..." << std::endl; + + std::cout << "...timer running now!" << std::endl; + + display.showTime(100, 100); + while(1) + { + + } +} \ No newline at end of file diff --git a/timer.hpp b/timer.hpp new file mode 100644 index 0000000..a19c269 --- /dev/null +++ b/timer.hpp @@ -0,0 +1,21 @@ +#ifndef _TIMER_HPP_ +#define _TIMER_HPP_ + + +#include "display.hpp" + +class Timer +{ + public: + + Timer(); + + void run(); + + private: + + Display display; +}; + + +#endif // _TIMER_HPP_ \ No newline at end of file diff --git a/utils.hpp b/utils.hpp new file mode 100644 index 0000000..5587e7e --- /dev/null +++ b/utils.hpp @@ -0,0 +1,8 @@ +#include + +// https://stackoverflow.com/questions/9323903/most-efficient-elegant-way-to-clip-a-number +template +T clip(const T& n, const T& lower, const T& upper) { + return std::max(lower, std::min(n, upper)); +} +