mirror of
https://github.com/DashyFox/StackSport.git
synced 2025-05-04 15:20:16 +00:00
80 lines
2.3 KiB
C
80 lines
2.3 KiB
C
#include "stm32f1xx_hal.h"
|
|
|
|
#ifndef INC_EEPROM_H_
|
|
#define INC_EEPROM_H_
|
|
|
|
#define AT24C_ADRESS 0x50 // i2c slave adress EEPROM
|
|
|
|
#define START_ADR_STAT 0x0000 //00000
|
|
#define STAT_BLOCKSIZE 20
|
|
|
|
#define START_ADR_SHOT (START_ADR_STAT+STAT_BLOCKSIZE) // 0x0014 = 20
|
|
#define SHOT_BLOCKSIZE 10
|
|
#define MAX_NUMBER_SHOTS 255
|
|
|
|
#define START_ADR_PROGRAM (START_ADR_SHOT + (SHOT_BLOCKSIZE*MAX_NUMBER_SHOTS)) // 0x0A0A = 2570
|
|
#define PROGRAM_BLOCKSIZE 203
|
|
#define MAX_NUMBER_PROGRAMS 100
|
|
#define MAX_NUMBER_SHOTS_IN_PROGRAMS \
|
|
(PROGRAM_BLOCKSIZE-sizeof(ProgramHeader)) /sizeof(ProgramShot) // 100
|
|
|
|
#define START_ADR_MACRO (START_ADR_PROGRAM + (PROGRAM_BLOCKSIZE*MAX_NUMBER_PROGRAMS)) // 0x5956 = 22870
|
|
#define MACRO_BLOCKSIZE 81
|
|
#define MAX_NUMBER_MACRO 100
|
|
#define MAX_NUMBER_PROGRAMS_IN_MACRO \
|
|
(MACRO_BLOCKSIZE-sizeof(MacroHeader)) /sizeof(MacroProgram) // 20
|
|
|
|
#define MEMORY_END (START_ADR_MACRO + (MACRO_BLOCKSIZE*MAX_NUMBER_MACRO)) // 0x78FA = 30970
|
|
|
|
typedef struct Shot {
|
|
unsigned char isExist;
|
|
unsigned char countRepeatShot;
|
|
unsigned char speedRollerTop; // 0 .. 100 .. 200
|
|
unsigned char speedRollerBottom; // 0 .. 100 .. 200
|
|
unsigned char speedScrew; // 0 .. 100
|
|
unsigned char rotationAxial; // 0 .. 90 .. 180
|
|
unsigned char rotationHorizontal; // 0 .. 90 .. 180
|
|
unsigned char rotationVertical; // 0 .. 90 .. 180
|
|
}Shot;
|
|
|
|
typedef struct ProgramHeader {
|
|
unsigned char isExist;
|
|
unsigned char countRepeat;
|
|
unsigned char options;
|
|
}ProgramHeader;
|
|
|
|
typedef struct ProgramShot {
|
|
unsigned char id;
|
|
unsigned char speedScrew;
|
|
}ProgramShot;
|
|
|
|
typedef struct Program {
|
|
ProgramHeader header;
|
|
ProgramShot shots[MAX_NUMBER_SHOTS_IN_PROGRAMS];
|
|
}Program;
|
|
|
|
typedef struct MacroHeader {
|
|
unsigned char isExist;
|
|
}MacroHeader;
|
|
|
|
typedef struct MacroProgram {
|
|
unsigned char id;
|
|
unsigned char speedScrew;
|
|
unsigned char countRepeat;
|
|
unsigned char options;
|
|
}MacroProgram;
|
|
|
|
typedef struct Macro {
|
|
MacroHeader header;
|
|
MacroProgram programs[MAX_NUMBER_PROGRAMS_IN_MACRO];
|
|
} Macro;
|
|
|
|
void FLASH_WriteBlock(uint16_t startAddr, uint8_t number,uint8_t *writeData);
|
|
void FLASH_ReadBlock(uint16_t startAddr, uint8_t number, uint8_t *outData);
|
|
|
|
|
|
void SaveShot(unsigned char number, struct Shot* shot);
|
|
Shot GetShot( unsigned char number );
|
|
|
|
#endif /* INC_EEPROM_H_ */
|