Split project structure to fw/hw, KiCad gitignore

This commit is contained in:
Ilya Elenskiy
2020-04-19 14:32:24 +02:00
parent 5d0b62bef5
commit a3b1d9cb11
16 changed files with 148 additions and 108 deletions

39
Firmware/include/README Normal file
View 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

43
Firmware/include/music.h Normal file
View File

@@ -0,0 +1,43 @@
#ifndef MUSIC_H_
#define MUSIC_H_
typedef struct
{
uint16_t tone;
uint16_t duration;
} MUSIC_Note;
#define MUSIC_END { 0, 0 }
#define MUSIC_IS_END(_note_) (!((_note_).tone) && !((_note_).duration))
#define MUSIC_A4 440
#define MUSIC_B4 494
#define MUSIC_C4 262
#define MUSIC_D4 293
#define MUSIC_E4 330
#define MUSIC_F4 349
#define MUSIC_G4 392
#define MUSIC_A5 880
#define MUSIC_B5 988
#define MUSIC_C5 523
#define MUSIC_D5 587
#define MUSIC_E5 659
#define MUSIC_F5 698
#define MUSIC_G5 784
#define MUSIC_1 1000
#define MUSIC_2 (MUSIC_1/2)
#define MUSIC_4 (MUSIC_1/4)
#define MUSIC_8 (MUSIC_1/8)
#define MUSIC_16 (MUSIC_1/16)
#define MUSIC_32 (MUSIC_1/32)
typedef const MUSIC_Note* MUSIC_Track;
extern const MUSIC_Note MUSIC_Tetris[];
void Music_PlayTrack (MUSIC_Track track);
#endif /* MUSIC_H_ */