рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реЗ рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬреЛ рд╕рдордп рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдирд┐рдпрдорд┐рдд рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕рдордп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рд╕рдЯреАрдХ, рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЖрджрд┐) рдХреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ: рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯрд╛рдЗрдорд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╡реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж, рдмрд╕ рдЪрдХреНрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╛ рдЯрд╛рдЗрдорд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЧрд┐рдирддреА рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд╛рдЗрдорд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИред рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рдмрд╛рдж рдХрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд╛рдЗрдорд░ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм (рдпрд╛ рд╣рд░ рдмрд╛рд░) рдЯрд╛рдЗрдорд░ рдХрд╛рд░реНрдп рдЪрдХреНрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╣рд▓реБрдУрдВ рдХреЗ рд╕рд╛рде, рдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ
nuse_config.h рдореЗрдВ
#define рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ ред рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░
NUSE_TIMER_NUMBER рд╣реИ , рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдорд╛рди рд╢реВрдиреНрдп рд╣реИ (рдЕрд░реНрдерд╛рдд, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ 16 рддрдХ рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЧрд▓рдд рдорд╛рди рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛, рдЬреЛ рдлрд╝рд╛рдЗрд▓
nuse_config_theck.h рдореЗрдВ рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ (рдпрд╣ рдлрд╝рд╛рдЗрд▓
nuse_config.c рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ) рдЗрд╕рдХреЗ рд╕рд╛рде), рдЬреЛ
# рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред
рдиреЙрдирдЬрд╝реЗрд░реЛ рд╡реИрд▓реНрдпреВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдореБрдЦреНрдп рдЯрд╛рдЗрдорд░ рдПрдХреНрдЯрд┐рд╡реЗрдЯрд░ рд╣реИред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдиреЙрдирдЬрд░реЛ рдорд╛рди рдПрдкреАрдЖрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рдкрди рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рд╕рдХреНрд░рд┐рдпрдг
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдореГрддрд┐ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдЯрд╛рдЗрдорд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ,
NUSE_TIMER_EXPIRATION_ROUTINE_SUPPORT рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ
nuse_config.h рдореЗрдВ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЛ рд╕рдХреНрд░рд┐рдп (рдпрд╛ рдирд╣реАрдВ) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ
FALSE рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ ROM рдореЗрдВ рджреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдкреАрдЖрдИ рд╕рдХреНрд░рд┐рдпрдг
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди (рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓) рдореЗрдВ nuse_config.h рдореЗрдВ рдПрдХ рд╕рдХреНрд░рд┐рдп #define рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП, рдЗрди рдкреНрд░рддреАрдХреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
NUSE_TIMER_CONTROL
NUSE_TIMER_GET_REMAINING
NUSE_TIMER_RESET
NUSE_TIMER_INFORMATION
NUSE_TIMER_COUNTрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рд╕рдХреНрд░рд┐рдпрдХрд░реНрддрд╛
FALSE рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╕реЗрд╡рд╛ рдХреЙрд▓ рдЕрдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдХреЛрдб рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ API рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ
TRUE рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ
nuse_config.h рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЛрдб рдХрд╛ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИред
#define NUSE_TIMER_NUMBER 0/* 0-16 */ /* */ #define NUSE_TIMER_CONTROL FALSE #define NUSE_TIMER_GET_REMAINING FALSE #define NUSE_TIMER_RESET FALSE #define NUSE_TIMER_INFORMATION FALSE #define NUSE_TIMER_COUNT FALSE
рдпрджрд┐ рдЯрд╛рдЗрдорд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд API рдлрд╝рдВрдХреНрд╢рди рд╕рдХреНрд░рд┐рдп рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ (
NUSE_Timer_Count () рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕рдХреНрд╖рдо рд╣реИ) рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЛрдИ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдПрдХ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдПрдХ рд▓реЗрдЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдЖрд╡реЗрджрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдерд╛ред
рдЯрд╛рдЗрдорд░ рд╕реЗрд╡рд╛ рдХреЙрд▓
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдЖрда рдЯрд╛рдЗрдорд░-рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдкреНрд░рдмрдВрдзрди (рд╕реНрдЯрд╛рд░реНрдЯ / рд╕реНрдЯреЙрдк) рдЯрд╛рдЗрдорд░ред Nucle_Timer_Control () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╢реЗрд╖ рдЯрд╛рдЗрдорд░ рд╕рдордп рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, NUSE_Timer_Get_Remaining () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
- рдЯрд╛рдЗрдорд░ рдХреЛ рдЙрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ (рд░реАрд╕реЗрдЯ)ред NUSE_Timer_Reset () рдореЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
- рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред Nucle_Timer_Information () рдореЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ NUSE_Timer_Count () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдирд┐рд░реНрдорд╛рдг) рдореЗрдВ рдПрдХ рдирдпрд╛ рдЯрд╛рдЗрдорд░ рдЬреЛрдбрд╝рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЯрд╛рдЗрдорд░ рдирд┐рдХрд╛рд▓ рд░рд╣рд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдкрд░ рд▓реМрдЯрдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдиреАрдЪреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЯрд╛рдЗрдорд░ рд╕реЗрд╡рд╛рдПрдБ
рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореМрд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдирд┐рдпрдВрддреНрд░рдг (рд╢реБрд░реВ рдФрд░ рдмрдВрдж) рдФрд░ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рдкрдврд╝рдиреЗ рд╣реИрдВред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдмреБрдирд┐рдпрд╛рджреА рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рд╕рдордп рдкрд░ рдирд┐рдпрдВрддреНрд░рдг
рдЯрд╛рдЗрдорд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдЖрдкрдХреЛ рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдкреНрд░рд╛рд░рдВрдн рдФрд░ рд░реЛрдХреЗрдВ)ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХрдВрдЯреНрд░реЛрд▓ рдЪреИрд▓реЗрдВрдЬрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Control_Timer (NU_TIMER * рдЯрд╛рдЗрдорд░, рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЛ рд╕реВрдЪрдХ;
рд╕рдХреНрд╖рдо рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╣
NU_ENABLE_TIMER рдпрд╛
NU_DISABLE_TIMER рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INAVLID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХ;
NU_INAVLID_ENABLE - рдЕрдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рдиред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХрдВрдЯреНрд░реЛрд▓ рдЪреИрд▓реЗрдВрдЬрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Timer_Control (NUSE_TIMER рдЯрд╛рдЗрдорд░, рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдкреНрд░рдпреБрдХреНрдд рдЯрд╛рдЗрдорд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
рд╕рдХреНрд╖рдо рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╣
NUSE_ENABLE_TIMER рдпрд╛
NUSE_DISABLE_TIMER рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INCALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_ENABLE рдПрдХ рдЕрдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдкреНрд░рдмрдВрдзрди рд▓рд╛рдЧреВ рдХрд░реЗрдВAPI рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб
NUSE_Timer_Control () (рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж) рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
NUSE_CS_Enter(); if (enable == NUSE_ENABLE_TIMER) { NUSE_Timer_Status[timer] = TRUE; if (NUSE_Timer_Expirations_Counter[timer] == 0) { NUSE_Timer_Value[timer] = NUSE_Timer_Initial_Time[timer]; } else { NUSE_Timer_Value[timer] = NUSE_Timer_Reschedule_Time[timer]; } } else /* enable == NUSE_DISABLE_TIMER */ { NUSE_Timer_Status[timer] = FALSE; } NUSE_CS_Exit();
рдпрджрд┐
NUSE_DISABLE_TIMER рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЯрд╛рдЗрдорд░ рд╕реНрдерд┐рддрд┐ (
NUSE_Timer_Status [] рдкреИрд░рд╛рдореАрдЯрд░)
FALSE рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдорд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдЖрдк
NUSE_ENABLE_TIMER рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ
, рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ (
NUSE_Timer_Value [] )
NUSE_Timer_initial_Time [] рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдЕрдВрддрд┐рдо рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЯрд╛рдЗрдорд░ рдХрднреА рднреА рдмрдВрдж рди рд╣реЛред рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ
NUSE_Timer_Reschedule_Time [] рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдм рдЯрд╛рдЗрдорд░ рд╕реНрдерд┐рддрд┐ (рдкреИрд░рд╛рдореАрдЯрд░
NUSE_Timer_Status [] )
TRUE рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЯрд╛рдЗрдорд░ рдХреЛ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдордп рдкрдврд╝рдиреЗ
рд╢реЗрд╖ рдЯрд╛рдЗрдорд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдЙрдкрд╛рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рд╢реЗрд╖ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Get_Remaining_Time (NU_TIMER * рдЯрд╛рдЗрдорд░, UNSIGNED * рд╢реЗрд╖_рдЯрд╛рдЗрдо);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЛ рд╕реВрдЪрдХ;
рд╢реЗрд╖_рдЯрд╛рдЗрдо - рд╢реЗрд╖ рд╕рдордп рдорд╛рди рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рдЬреЛ
UNSIGNED рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╢реЗрд╖ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NUSE_Timer_Get_Remaining (NUSE_TIMER рдЯрд╛рдЗрдорд░, U16 * рд╢реЗрд╖_ рд╕рдордп);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдкреНрд░рдпреБрдХреНрдд рдЯрд╛рдЗрдорд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
рд╢реЗрд╖_ рд╕рдордп - рд╢реЗрд╖ рд╕рдордп рдорд╛рди рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ, рдЬреЛ
U16 рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_POINTER - рд╢реЗрд╖ рд╕рдордп (
NULL ) рдХреЗ рд▓рд┐рдП рдирд▓ рд╕реВрдЪрдХред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рд╡реЗрд░рд┐рдПрдВрдЯ
NUSE_Timer_Get_Remaining () (рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж) рддреБрдЪреНрдЫ рд╕рд░рд▓ рд╣реИред
NUSE_Timer_Value [] рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред
рд╕рд╣рд╛рдпрдХ рдЯрд╛рдЗрдорд░ рд╕реЗрд╡рд╛рдПрдБ
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдЪрд╛рд░ рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрдорд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдЯрд╛рдЗрдорд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛, рдЯрд╛рдЗрдорд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдФрд░ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдкрд╣рд▓реЗ рддреАрди рдХрд╛рд░реНрдп рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЯрд╛рдЗрдорд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдЯрд╛рдЗрдорд░ рдХреЛ рдЙрд╕рдХреА рдореВрд▓, рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрдорд░ рдХреЗ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (
NUSE_Timer_Control () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ
NUSE_Timer_Initial_Time [] рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд╛рдЬреНрдп рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдордп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЯрд╛рдЗрдорд░ рдХреЗ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдкреВрд░реНрдг рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрдиреНрд╣реЗрдВ рд░реЛрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Reset_Timer (NU_TIMER * рдЯрд╛рдЗрдорд░, VOID (* expiration_routine) (UNSIGNED), UNSIGNED initial_time, UNSIGNED reschedule_time, OPTION enable);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реАрд╕реЗрдЯ рдЯрд╛рдЗрдорд░;
expiration_routine - рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
initial_time - рдЯрд╛рдЗрдорд░ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдЯрд┐рдХ рдЬрд╛рддреА рд╣реИ;
reschedule_time - рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреВрд╕рд░реА рдФрд░ рдмрд╛рдж рдореЗрдВ рдЪрдХреНрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ
рдЯрд┐рдХ рдЬрд╛рддреА рд╣реИ;
рд╕рдХреНрд╖рдо рдХрд░реЗрдВ - рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рддрд┐, рдорд╛рди
NU_ENABLE_TIMER рдпрд╛
NU_DISABLE_TIMER рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TIMER - рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХ;
NU_INVALID_FUNCTION - рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ (
NULL );
NU_INVALID_ENABLE - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдЧрд▓рдд рд╣реИ;
NU_NOT_DISABLED - рдЯрд╛рдЗрдорд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрдпрд╣ рдПрдкреАрдЖрдИ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Timer_Reset (NUSE_TIMER рдЯрд╛рдЗрдорд░, рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рд░реАрд╕реЗрдЯ рдЯрд╛рдЗрдорд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
рд╕рдХреНрд╖рдо рдХрд░реЗрдВ - рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рддрд┐,
NUSE_ENABLE_TIMER рдпрд╛
NUSE_DISABLE_TIMER рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_ENABLE - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдЧрд▓рдд рд╣реИ;
NUSE_NOT_DISABLED - рдЯрд╛рдЗрдорд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рд░реАрд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд░рдирд╛API рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб
NUSE_Timer_Reset () (рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж
) рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
NUSE_CS_Enter(); NUSE_Init_Timer(timer); if (enable == NUSE_ENABLE_TIMER) { NUSE_Timer_Status[timer] = TRUE; } /* enable == NUSE_DISABLE_TIMER FALSE */ NUSE_CS_Exit();
NUSE_Init_Timer () рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╕рдордп рдорд╛рди рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЯрд╛рдЗрдорд░ рдЪрд╛рд▓реВ рд╣реИред
рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА
рдпрд╣ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдЖрдкрдХреЛ рдЯрд╛рдЗрдорд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╛рдордХрд░рдг рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдХрдо рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Timer_Information (NU_TIMER * рдЯрд╛рдЗрдорд░, CHAR * рдирд╛рдо, рд╡рд┐рдХрд▓реНрдк * рд╕рдХреНрд╖рдо, UNSIGNED * рд╕рдорд╛рдкреНрддрд┐, UNSIGNED * id, UNSIGNED * initial_time, UNISIGNED * reschedule_time);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдПрдХ
рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдирд╛рдо - рдЯрд╛рдЗрдорд░ рдирд╛рдо рдХреЗ рд▓рд┐рдП 8-рд╡рд░реНрдг рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕реВрдЪрдХ;
рд╕рдХреНрд╖рдо - рдЯрд╛рдЗрдорд░ рдПрдХреНрдЯрд┐рд╡реЗрдЯрд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░:
NU_ENABLE_TIMER рдпрд╛
NU_DISABLE_TIMER ;
рд╕рдорд╛рдкреНрддрд┐ - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬреЛ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЯрд╛рдЗрдорд░ рдЪрдХреНрд░ рдХреЗ рдкреВрд░реНрдгрддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд▓реЗрддрд╛ рд╣реИ;
рдЖрдИрдбреА - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдЬреЛ рдЯрд╛рдЗрдорд░ рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ;
initial_time - рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рдПрдХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
reschedule_time - рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬреЛ рдПрдХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NUSE_Timer_Information (NUSE_TIMER рдЯрд╛рдЗрдорд░, рд╡рд┐рдХрд▓реНрдк * рд╕рдХреНрд╖рдо, U8 * рд╕рдорд╛рдкреНрддрд┐, U8 * id, U16 * initial_time, U16 * reschedule_time);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ -
рдЯрд╛рдЗрдорд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рд╕рдХреНрд╖рдо рдХрд░реЗрдВ - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЬреЛ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ
TRUE рдпрд╛
FALSE , рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реИ рдпрд╛ рдирд╣реАрдВ;
expirations -
U8 рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЬреЛ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЯрд╛рдЗрдорд░ рдкреВрд░реНрдгрддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ;
рдЖрдИрдбреА -
U8 рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рдЯрд╛рдЗрдорд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ (рдпрджрд┐ рдкреВрд░реНрдг рдлрд╝рдВрдХреНрд╢рди рдЕрдХреНрд╖рдо рд╣реИрдВ рддреЛ рдПрдХ рдЦрд╛рд▓реА рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛);
initial_time -
U16 рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬреЛ рдПрдХ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдорд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
reschedule_time -
U16 рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рдЬреЛ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдорд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_POINTER - рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЧрд▓рдд рд╣реИрдВред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓рд╛рдЧреВ рдХрд░рдирд╛рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
NUSE_CS_Enter(); if (NUSE_Timer_Status[timer]) { *enable = NUSE_ENABLE_TIMER; } else { *enable = NUSE_DISABLE_TIMER; } *expirations = NUSE_Timer_Expirations_Counter[timer]; #if NUSE_TIMER_EXPIRATION_ROUTINE_SUPPORT *id = NUSE_Timer_Expiration_Routine_Parameter[timer]; #endif *initial_time = NUSE_Timer_Initial_Time[timer]; *reschedule_time = NUSE_Timer_Reschedule_Time[timer]; NUSE_CS_Exit();
рдлрд╝рдВрдХреНрд╢рди рдЯрд╛рдЗрдорд░ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдорд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдХреЗрд╡рд▓ рддрднреА рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╕рдордп рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ, рдпрд╣ рдорд╛рди рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдЯрд╛рдЗрдорд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
UNSIGNED NU_Established_Timers (VOID);рдкреИрд░рд╛рдореАрдЯрд░: рдХреЛрдИ рдирд╣реАрдВ
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп: рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
U8 NUSE_Timer_Count (рд╢реВрдиреНрдп);рдкреИрд░рд╛рдореАрдЯрд░: рдХреЛрдИ рдирд╣реАрдВ
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдЖрд╡реЗрджрди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛
рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЗрд╕ API рдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: #define
NUSE_TIMER_NUMBER рдкреНрд░рддреАрдХ рдХрд╛ рдорд╛рди
рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ ред
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ
рдЯрд╛рдЗрдорд░ рдкрд╛рдВрдЪ рдпрд╛ рд╕рд╛рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд░реИрдо рдпрд╛ рд░реЛрдо рдореЗрдВ рд╕реНрдерд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ (рдЕрдиреНрдп рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣) рдЯреЗрдмрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЪрдпрдирд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЕрд╡рд╛рдВрдЫрд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рдиреНрдпреВрдХреНрд▓рд┐рдпрд░ рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛ рдХреЙрд▓ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдХреА рд╕рдордЭ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрд╡рд▓реЛрдХрди рд╣реИред
рд░реИрдо рдбреЗрдЯрд╛
рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
NUSE_Timer_Status [] рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ
U8 рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ (рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛:
TRUE рдпрд╛
FALSE )ред
NUSE_Timer_Value [] рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ
U16 рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
NUSE_Timer_Expirations_Counter [] - рдкреНрд░рдХрд╛рд░
U8 рдХреА рдПрдХ рд╕рд░рдгреА, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдорд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЯрд╛рдЗрдорд░ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред
рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ
NUSE_Init_Timer () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрди рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрдЧрд╛ред
Nuse_init.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:
RAM U8 Timer_Status [NUSE_TIMER_NUMBER];
RAM U16 NUSE_Timer_Value [NUSE_TIMER_NUMBER];
RAM U8 NUSE_Timer_Expirations_Counter [NUSE_TIMER_NUMBER];ROM рдбреЗрдЯрд╛
рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛:
NUSE_Timer_Initial_Time [] рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ
U16 рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрдорд░ рдХрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
NUSE_Timer_Reschedule_Time [] рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ
U16 рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рд╡рд╣ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╢реВрдиреНрдп рдХрд╛ рдорд╛рди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдорд░ "рдПрдХ рдмрд╛рд░" рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
NUSE_Timer_Expiration_Routine_Address [] - рдЯрд╛рдЗрдорд░ рд╕рдорд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрддреЗ рд╡рд╛рд▓реЗ
ADDR рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреАред рдпрд╣ рд╕рд░рдгреА рдХреЗрд╡рд▓ рддрднреА рдореМрдЬреВрдж рд╣реИ рдЬрдм рдЯрд╛рдЗрдорд░ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИред
NUSE_Timer_Expiration_Routine_Parameter [] - рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рд░рдгреА
U8 рдЬрд┐рд╕рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди
рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрдорд░ рдкреВрд░реНрдгрддрд╛ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд░рдгреА рдХреЗрд╡рд▓ рддрднреА рдореМрдЬреВрдж рд╣реИ рдЬрдм рдкреВрд░реНрдг рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдпреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ
nuse_config.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдФрд░ рдЖрд░рдВрднрд┐рдХ (рд╕реНрдЯреИрдЯрд┐рдХрд▓реА) рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░:
ROM U16 NUSE_Timer_Initial_Time[NUSE_TIMER_NUMBER] = { /* ------ */ }; ROM U16 NUSE_Timer_Reschedule_Time[NUSE_TIMER_NUMBER] = { /* ------ */ }; #if NUSE_TIMER_EXPIRATION_ROUTINE_SUPPORT || NUSE_INCLUDE_EVERYTHING /* */ ROM ADDR NUSE_Timer_Expiration_Routine_Address[NUSE_TIMER_NUMBER] = { /* ------ */ /* NULL */ }; ROM U8 NUSE_Timer_Expiration_Routine_Parameter[NUSE_TIMER_NUMBER] = { /* ------ */ }; #endif
рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛
рдЕрдиреНрдп рд╕рднреА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рддрд░рд╣, рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред
рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд░реИрдо (рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
NUSE_TIMER_NUMBER * 4рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП ROM (рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛, рдпрджрд┐ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
NUSE_TIMER_NUMBER * 4рдЕрдиреНрдпрдерд╛, рдпрд╣ рдмрд░рд╛рдмрд░ рд╣реИ:
NUSE_TIMER_NUMBER * (рдЖрдХрд╛рд░ (ADDR) + 5)рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рдХреЙрд▓
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдЙрди рддреАрди рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдордп рдирд┐рд░реНрдорд╛рдг
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдПрдХ рдЯрд╛рдЗрдорд░ рдмрдирд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Create_Timer (NU_TIMER * рдЯрд╛рдЗрдорд░, CHAR * рдирд╛рдо, VOID (* expiration_routine) (UNSIGNED), UNSIGNED id, UNSIGNED initial_time, UNSIGNED reschedule_time, OPTION enable);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЛ рд╕реВрдЪрдХ; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЙрд▓ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
рдирд╛рдо - рдПрдХ рд╕рдорд╛рдкреНрддрд┐ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдорд░ рдХреЗ 7-рдЪрд░рд┐рддреНрд░ рдирд╛рдо рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
expiration_routine - рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдорд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
рдЖрдИрдбреА - рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдбреЗрдЯрд╛ рддрддреНрд╡: рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рд╕рдорд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдорд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
initial_time - рдЯрд╛рдЗрдорд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ;
reschedule_time - рджреВрд╕рд░реА рдФрд░ рдмрд╛рдж рдореЗрдВ рдЪрдХреНрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЯрд╛рдЗрдорд░
рдЯрд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдЯрд╛рдЗрдорд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ;
рд╕рдХреНрд╖рдо - рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░
NU_ENABLE_TIMER рдФрд░
NU_DISABLE_TIMER рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ;
NU_ENABLE_TIMER рдЯрд╛рдЗрдорд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ;
NU_DISABLE_TIMER рдЯрд╛рдЗрдорд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реИ;
NU_DISABLE_TIMER рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдЯрд╛рдЗрдорд░
NU_Control_Timer рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TIMER - рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ (
NULL ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ, рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ;
NU_INVALID_FUNCTION - рдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ (
NULL );
NU_INVALID_ENABLE - рдЕрдорд╛рдиреНрдп
рд╕рдХреНрд╖рдо рдкреИрд░рд╛рдореАрдЯрд░;
NU_INVALID_OPERATION -
рдкреНрд░рд╛рд░рдВрднрд┐рдХ_рдЯрд╛рдЗрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдерд╛ред
рдЯрд╛рдЗрдорд░ рд╣рдЯрд╛рдПрдВ
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЯрд╛рдЗрдорд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Delete_Timer (NU_TIMER * рдЯрд╛рдЗрдорд░);рд╡рд┐рдХрд▓реНрдк:
рдЯрд╛рдЗрдорд░ - рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЯрд╛рдЗрдорд░ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TIMER - рдЕрдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рд╕реВрдЪрдХ;
NU_NOT_DISABLED - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯрд╛рдЗрдорд░ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред
рдЯрд╛рдЗрдорд░ рд╕рдВрдХреЗрдд
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХреА рдПрдХ рдХреНрд░рдорд┐рдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рди рдХрд┐ рдПрдХ рд╕реВрдЪрдХред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
UNSIGNED NU_Timer_Pointers (NU_TIMER ** рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ, UNSIGNED рдореИрдХреНрд╕рд┐рдордо_рдкреЛрдЗрдВрдЯрд░реНрд╕);рд╡рд┐рдХрд▓реНрдк:
рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ - рдкреЙрдЗрдВрдЯрд░реНрд╕
рдСрдлрд╝ рдж рдкреЙрдЗрдВрдЯ рдСрдлрд╝
рдПрдирдпрд░реНрд╕ NU_TIMER ; рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рд╕реЗ рд╕рдВрдХреЗрдд рднрд░ рдЬрд╛рдПрдЧрд╛;
рдЕрдзрд┐рдХрддрдо_ рдкреЙрдЗрдВрдЯрд░реНрд╕ - рд╕рд░рдгреА рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рд╕рд░рдгреА рдореЗрдВ рд░рдЦреЗ рдЧрдП
NU_TIMER рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдирд╛рднрд┐рдХ RTOS рд╕рдВрдЧрдд
рдЕрдиреНрдп рд╕рднреА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕рдВрдЧрддрддрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдирд╛ рдерд╛ред рдЯрд╛рдЗрдорд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИрдВ рдФрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВред
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╕рдВрдЧрддрд┐ рднреА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рдирд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреЛрдб рдЖрд╡рд╢реНрдпрдХ рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рд╕реАрдзреЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ, рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдПрдХ рдЯрд╛рдЗрдорд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдореЗрдореЛрд░реА рдХреЗ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рд╕рднреА рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░реИрдо рдФрд░ / рдпрд╛ рд░реЛрдо рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ NUSE_TIMER рдХреЛ U8 рдХреЗ рд╕рдордХрдХреНрд╖ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ (рд╕реВрдЪрдХ рдирд╣реАрдВ) рдЯрд╛рдЗрдорд░ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдб рдХреЛ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдкрд░ рдореВрд╡рд┐рдВрдЧ рдФрд░ рд╕реНрдЯреЛрд░рд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдирд╛рдордХрд░рдг рдЯрд╛рдЗрдорд░ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛редрд╕рдордп рдХрд╛ рдЖрдХрд╛рд░
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ, рдЯрд╛рдЗрдорд░ рдХреЛ 32-рдмрд┐рдЯ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ 16 рдмрд┐рдЯреНрд╕ рддрдХ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕рд╕реЗ рд╕реНрдореГрддрд┐ рджрдХреНрд╖рддрд╛ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдкреВрд░реНрдг рдХрд╛рд░реНрдп
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдкреНрддрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдЖрдкрдХреЛ рд╕реНрдореГрддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ), рдФрд░ рд╡реЗ рднреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЯрд╛рдЗрдорд░ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдЕрдВрддрд┐рдо рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рдХреЙрд▓
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдЖрда рдЯрд╛рдЗрдорд░ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рддреАрди рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИрдВред рдЗрди рдХреЙрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг, рд╕рд╛рде рд╣реА рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рд▓реЗ "рдЕрдирд╛рд░рдХреНрд╖рд┐рдд рдПрдкреАрдЖрдИ рдХреЙрд▓" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рд░реБрдХрд╛рд╡рдЯреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред