first Functions
This commit is contained in:
		
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | .pio | ||||||
|  | .vscode/.browse.c_cpp.db* | ||||||
|  | .vscode/c_cpp_properties.json | ||||||
|  | .vscode/launch.json | ||||||
|  | .vscode/ipch | ||||||
							
								
								
									
										7
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | { | ||||||
|  |     // See http://go.microsoft.com/fwlink/?LinkId=827846 | ||||||
|  |     // for the documentation about the extensions.json format | ||||||
|  |     "recommendations": [ | ||||||
|  |         "platformio.platformio-ide" | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										39
									
								
								include/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								include/README
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  |  | ||||||
|  | This directory is intended for project header files. | ||||||
|  |  | ||||||
|  | A header file is a file containing C declarations and macro definitions | ||||||
|  | to be shared between several project source files. You request the use of a | ||||||
|  | header file in your project source file (C, C++, etc) located in `src` folder | ||||||
|  | by including it, with the C preprocessing directive `#include'. | ||||||
|  |  | ||||||
|  | ```src/main.c | ||||||
|  |  | ||||||
|  | #include "header.h" | ||||||
|  |  | ||||||
|  | int main (void) | ||||||
|  | { | ||||||
|  |  ... | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Including a header file produces the same results as copying the header file | ||||||
|  | into each source file that needs it. Such copying would be time-consuming | ||||||
|  | and error-prone. With a header file, the related declarations appear | ||||||
|  | in only one place. If they need to be changed, they can be changed in one | ||||||
|  | place, and programs that include the header file will automatically use the | ||||||
|  | new version when next recompiled. The header file eliminates the labor of | ||||||
|  | finding and changing all the copies as well as the risk that a failure to | ||||||
|  | find one copy will result in inconsistencies within a program. | ||||||
|  |  | ||||||
|  | In C, the usual convention is to give header files names that end with `.h'. | ||||||
|  | It is most portable to use only letters, digits, dashes, and underscores in | ||||||
|  | header file names, and at most one dot. | ||||||
|  |  | ||||||
|  | Read more about using header files in official GCC documentation: | ||||||
|  |  | ||||||
|  | * Include Syntax | ||||||
|  | * Include Operation | ||||||
|  | * Once-Only Headers | ||||||
|  | * Computed Includes | ||||||
|  |  | ||||||
|  | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html | ||||||
							
								
								
									
										46
									
								
								lib/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								lib/README
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  |  | ||||||
|  | This directory is intended for project specific (private) libraries. | ||||||
|  | PlatformIO will compile them to static libraries and link into executable file. | ||||||
|  |  | ||||||
|  | The source code of each library should be placed in a an own separate directory | ||||||
|  | ("lib/your_library_name/[here are source files]"). | ||||||
|  |  | ||||||
|  | For example, see a structure of the following two libraries `Foo` and `Bar`: | ||||||
|  |  | ||||||
|  | |--lib | ||||||
|  | |  | | ||||||
|  | |  |--Bar | ||||||
|  | |  |  |--docs | ||||||
|  | |  |  |--examples | ||||||
|  | |  |  |--src | ||||||
|  | |  |     |- Bar.c | ||||||
|  | |  |     |- Bar.h | ||||||
|  | |  |  |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html | ||||||
|  | |  | | ||||||
|  | |  |--Foo | ||||||
|  | |  |  |- Foo.c | ||||||
|  | |  |  |- Foo.h | ||||||
|  | |  | | ||||||
|  | |  |- README --> THIS FILE | ||||||
|  | | | ||||||
|  | |- platformio.ini | ||||||
|  | |--src | ||||||
|  |    |- main.c | ||||||
|  |  | ||||||
|  | and a contents of `src/main.c`: | ||||||
|  | ``` | ||||||
|  | #include <Foo.h> | ||||||
|  | #include <Bar.h> | ||||||
|  |  | ||||||
|  | int main (void) | ||||||
|  | { | ||||||
|  |   ... | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | PlatformIO Library Dependency Finder will find automatically dependent | ||||||
|  | libraries scanning project source files. | ||||||
|  |  | ||||||
|  | More information about PlatformIO Library Dependency Finder | ||||||
|  | - https://docs.platformio.org/page/librarymanager/ldf.html | ||||||
							
								
								
									
										15
									
								
								platformio.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								platformio.ini
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | ; PlatformIO Project Configuration File | ||||||
|  | ; | ||||||
|  | ;   Build options: build flags, source filter | ||||||
|  | ;   Upload options: custom upload port, speed and extra flags | ||||||
|  | ;   Library options: dependencies, extra library storages | ||||||
|  | ;   Advanced options: extra scripting | ||||||
|  | ; | ||||||
|  | ; Please visit documentation for the other options and examples | ||||||
|  | ; https://docs.platformio.org/page/projectconf.html | ||||||
|  |  | ||||||
|  | [env:nanoatmega328new] | ||||||
|  | platform = atmelavr | ||||||
|  | board = nanoatmega328new | ||||||
|  | framework = arduino | ||||||
|  | lib_deps = smougenot/TM1637@0.0.0-alpha+sha.9486982048 | ||||||
							
								
								
									
										148
									
								
								src/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								src/main.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | |||||||
|  | #include <Arduino.h> | ||||||
|  | #include <TM1637Display.h> | ||||||
|  |  | ||||||
|  | // Module connection pins (Digital Pins) | ||||||
|  | #define CLK 2 | ||||||
|  | #define DIO_GOF 3 | ||||||
|  | #define DIO_MIL 4 | ||||||
|  | #define DIO_KGG 5 | ||||||
|  |  | ||||||
|  | enum Parties | ||||||
|  | { | ||||||
|  |   NONE, | ||||||
|  |   GOF, | ||||||
|  |   MILIZ, | ||||||
|  |   KGG | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | TM1637Display disp_GOF(CLK, DIO_GOF); | ||||||
|  | TM1637Display disp_MIL(CLK, DIO_MIL); | ||||||
|  | TM1637Display disp_KGG(CLK, DIO_KGG); | ||||||
|  |  | ||||||
|  | Parties activeParty = NONE; | ||||||
|  |  | ||||||
|  | uint32_t Count_GOF = 0; | ||||||
|  | uint32_t Count_MILIZ = 0; | ||||||
|  | uint32_t Count_KGG = 0; | ||||||
|  | uint8_t KGG_dot = 0; | ||||||
|  | uint8_t GOF_dot = 0; | ||||||
|  | uint8_t MIL_dot = 0; | ||||||
|  |  | ||||||
|  | void setBrightness() | ||||||
|  | { | ||||||
|  |  | ||||||
|  |   switch (activeParty) | ||||||
|  |   { | ||||||
|  |   case GOF: | ||||||
|  |     disp_GOF.setBrightness(7); | ||||||
|  |     disp_MIL.setBrightness(0); | ||||||
|  |     disp_KGG.setBrightness(0); | ||||||
|  |     break; | ||||||
|  |  | ||||||
|  |   case MILIZ: | ||||||
|  |     disp_GOF.setBrightness(0); | ||||||
|  |     disp_MIL.setBrightness(7); | ||||||
|  |     disp_KGG.setBrightness(0); | ||||||
|  |     break; | ||||||
|  |  | ||||||
|  |   case KGG: | ||||||
|  |     disp_GOF.setBrightness(0); | ||||||
|  |     disp_MIL.setBrightness(0); | ||||||
|  |     disp_KGG.setBrightness(7); | ||||||
|  |     break; | ||||||
|  |  | ||||||
|  |   case NONE: | ||||||
|  |   default: | ||||||
|  |     disp_GOF.setBrightness(0); | ||||||
|  |     disp_MIL.setBrightness(0); | ||||||
|  |     disp_KGG.setBrightness(0); | ||||||
|  |     break; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void tickCounter() | ||||||
|  | { | ||||||
|  |   static boolean tick_flag = false; | ||||||
|  |   if (millis() % 1000 > 500) | ||||||
|  |   { | ||||||
|  |     if (!tick_flag) | ||||||
|  |     { | ||||||
|  |  | ||||||
|  |       switch (activeParty) | ||||||
|  |       { | ||||||
|  |       case GOF: | ||||||
|  |         Count_GOF++; | ||||||
|  |         GOF_dot = 0x50; | ||||||
|  |         break; | ||||||
|  |  | ||||||
|  |       case MILIZ: | ||||||
|  |         Count_MILIZ++; | ||||||
|  |         MIL_dot = 0x50; | ||||||
|  |         break; | ||||||
|  |  | ||||||
|  |       case KGG: | ||||||
|  |         Count_KGG++; | ||||||
|  |         KGG_dot = 0x50; | ||||||
|  |         break; | ||||||
|  |  | ||||||
|  |       default: | ||||||
|  |         break; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     tick_flag = true; | ||||||
|  |   } | ||||||
|  |   else | ||||||
|  |   { | ||||||
|  |     tick_flag = false; | ||||||
|  |     KGG_dot = 0x40; | ||||||
|  |     MIL_dot = 0x40; | ||||||
|  |     GOF_dot = 0x40; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void setup() | ||||||
|  | { | ||||||
|  |   Serial.begin(9600); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void loop() | ||||||
|  | { | ||||||
|  |   tickCounter(); | ||||||
|  |   setBrightness(); | ||||||
|  |  | ||||||
|  |   while (Serial.available() > 0) | ||||||
|  |   { | ||||||
|  |     char input = Serial.read(); | ||||||
|  |  | ||||||
|  |     switch (input) | ||||||
|  |     { | ||||||
|  |     case 'n': | ||||||
|  |       activeParty = NONE; | ||||||
|  |       break; | ||||||
|  |  | ||||||
|  |     case 'g': | ||||||
|  |       activeParty = GOF; | ||||||
|  |       break; | ||||||
|  |  | ||||||
|  |     case 'k': | ||||||
|  |       activeParty = KGG; | ||||||
|  |       break; | ||||||
|  |  | ||||||
|  |     case 'm': | ||||||
|  |       activeParty = MILIZ; | ||||||
|  |       break; | ||||||
|  |  | ||||||
|  |     default: | ||||||
|  |       break; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   int temp; | ||||||
|  |  | ||||||
|  |   temp = Count_GOF / 3600 * 100 + (Count_GOF / 60) % 60; | ||||||
|  |   disp_GOF.showNumberDecEx(temp / 60, GOF_dot, true, 4, 0); | ||||||
|  |   temp = Count_MILIZ / 3600 * 100 + (Count_MILIZ / 60) % 60; | ||||||
|  |   disp_MIL.showNumberDecEx(temp, MIL_dot, true, 4, 0); | ||||||
|  |   temp = Count_KGG / 3600 * 100 + (Count_KGG / 60) % 60; | ||||||
|  |   disp_KGG.showNumberDecEx(temp, KGG_dot, true, 4, 0); | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								test/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/README
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  |  | ||||||
|  | This directory is intended for PlatformIO Unit Testing and project tests. | ||||||
|  |  | ||||||
|  | Unit Testing is a software testing method by which individual units of | ||||||
|  | source code, sets of one or more MCU program modules together with associated | ||||||
|  | control data, usage procedures, and operating procedures, are tested to | ||||||
|  | determine whether they are fit for use. Unit testing finds problems early | ||||||
|  | in the development cycle. | ||||||
|  |  | ||||||
|  | More information about PlatformIO Unit Testing: | ||||||
|  | - https://docs.platformio.org/page/plus/unit-testing.html | ||||||
		Reference in New Issue
	
	Block a user