-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtimer_off.h
executable file
·71 lines (61 loc) · 2.34 KB
/
timer_off.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef TIMER_OFF_H
#define TIMER_OFF_H
#include "module/base.h"
#include "edge_detect/edge_detect.h"
#include "timer.h"
//! Перечисление возможных бит управления.
enum _E_Timer_Off_Control {
TIMER_OFF_CONTROL_NONE = CONTROL_NONE,
};
//! Перечисление возможных бит статуса.
enum _E_Timer_Off_Status {
TIMER_OFF_STATUS_NONE = STATUS_NONE,
};
//! Предварительная декларация типа модуля.
typedef struct _S_Timer_Off M_timer_off;
//! Структура модуля.
struct _S_Timer_Off {
// Базовые поля.
control_t control; //!< Слово управления.
status_t status; //!< Слово состояния.
// Входные данные.
flag_t in_value; //!< Входное значение сигнала.
// Выходные данные.
flag_t out_value; //!< Выходное значение сигнала.
// Параметры.
//reg_u32_t r_time_off_ms; //!< Время задержки в мс. // в m_tmr.
// Регистры.
M_timer r_tmr; //!< Таймер времени до срабатывания выхода.
// Методы.
METHOD_INIT(M_timer_off);
METHOD_DEINIT(M_timer_off);
METHOD_CALC(M_timer_off);
// Коллбэки.
// Внутренние данные.
// Внутренние модули.
M_edge_detect m_ed; //!< Детект фронта.
};
EXTERN METHOD_INIT_PROTO(M_timer_off);
EXTERN METHOD_DEINIT_PROTO(M_timer_off);
EXTERN METHOD_CALC_PROTO(M_timer_off);
#define TIMER_OFF_DEFCFG(TIME) {\
/* Базовые поля */\
0, 0, /* control, status */\
/* Входные данные */\
0, /* in_value */\
/* Выходные данные */\
0, /* out_value */\
/* Параметры */\
/* Регистры */\
TIMER_DEFCFG(TIME), /* r_tmr */\
/* TIME,*/ /* r_time_off_ms */\
/* Методы */\
METHOD_INIT_PTR(M_timer_off), METHOD_DEINIT_PTR(M_timer_off),\
METHOD_CALC_PTR(M_timer_off),\
/* Коллбэки */\
/* Внутренние данные */\
/* Внутренние модули */\
EDGE_DETECT_DEFAULTS, /* m_ed */\
}
#define TIMER_OFF_DEFAULTS TIMER_OFF_DEFCFG(0)
#endif /* TIMER_OFF_H */