Подскажите пожалуйста правильное наполнение .h и .c ну или хотя бы близкое к хорошему тону. т.к судя по интернету большинство наполняет как хочет, а более точного описания что действительно надо ( в заголовочном файле объявления, а в реализации их реализация) я не нашел…
правомерное такое наполнение или что-то лишнее
s_var.h
#ifndef INC_S_VAR_H_
#define INC_S_VAR_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "main.h"
#define COMMAND_ADDRESS 0x8040
#define ESD_CHECK_ADDRESS 0x8041
#define COMMAND_CHECK_ADDRESS 0x8046
typedef volatile struct {
uint8_t start;
uint16_t my_msec;
uint8_t my_sec;
uint8_t my_min;
uint32_t start_time;
} my_time_t;
typedef volatile struct {
uint16_t XX;
uint16_t YY;
uint16_t XXOLD;
uint16_t YYOLD;
uint8_t stat;
uint8_t buff_alf;
} my_touch_t;
enum flags {
_zero,
_yes,
_no,
_cancel,
_yesmax,
_edit_mas,
_input_mas,
_select,
_edit,
_proces,
_start,
_stop,
_select_sort,
_select_button,
_select_prof,
_select_end,
_show_cursor,
_cursor_yes,
_cursor_no,
};
extern volatile char xy_text[20];
extern volatile uint8_t TouchCount911;
extern volatile int my_mks;
extern volatile my_time_t my_time;
extern volatile my_touch_t my_touch;
extern void key_select(uint8_t ny,uint8_t sy,uint16_t colory);
#ifdef __cplusplus
}
#endif
#endif /* INC_S_VAR_H_ */
s_var.c
#include "s_var.h"
volatile int my_mks=0;
my_time_t my_time;
my_touch_t my_touch;
volatile char xy_text[20]={0};
volatile uint8_t TouchCount911 = 0;
extern uint16_t TFT_WIDTH;
extern uint16_t TFT_HEIGHT;
char alf[] = { "1234567890QWERTYUIOPASDFGHJKL*ZXCVBNM.-= " };
void key_select(uint8_t ny, uint8_t sy, uint16_t colory) {
if ((ny > 7) & (sy == 3))
{
if (ny == 9) ny = 8;
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 134 + ((ny + 1) * 66),
131 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 161 + (sy * 53), 134 + ((ny + 1) * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 89 + (ny * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(128 + ((ny + 1) * 66), 126 + (sy * 53),
134 + ((ny + 1) * 66), 166 + (sy * 53), colory);
} else if (((ny == 0) && (sy == 4)) || ((ny == 8) && (sy == 4)))
{
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 134 + ((ny + 1) * 66),
131 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 161 + (sy * 53), 134 + ((ny + 1) * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 89 + (ny * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(128 + ((ny + 1) * 66), 126 + (sy * 53),
134 + ((ny + 1) * 66), 166 + (sy * 53), colory);
} else if ((ny == 2) & (sy == 4))
{
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 134 + ((ny + 5) * 66),
131 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 161 + (sy * 53), 134 + ((ny + 5) * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 89 + (ny * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(128 + ((ny + 5) * 66), 126 + (sy * 53),
134 + ((ny + 5) * 66), 166 + (sy * 53), colory);
} else if ((sy < 4))
{
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 134 + (ny * 66),
131 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 161 + (sy * 53), 134 + (ny * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(84 + (ny * 66), 126 + (sy * 53), 89 + (ny * 66),
166 + (sy * 53), colory);
LCD_DrawSqware(128 + (ny * 66), 126 + (sy * 53), 134 + (ny * 66),
166 + (sy * 53), colory);
}
}
P/S не обращайте внимание на то , что некоторые объявленные переменные не используются… в файле main пока только #include “s_var.h” и бесконечный цикл… поэтому не выкладываю … ошибок нет по компилятору … меня в данном случае интересует правильно ли я разместил или не там где надо. или может что-то лишнее…
переменные extern volatile использоваться будут в других файлах и в прерываниях…
Спасибо