рд╕рдордп рдЯреНрд░рд┐рдЧрд░ рдбрд┐рдЬрд╛рдЗрди - рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг

рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рджреЛ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ - рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдФрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдУрдПрд╕ред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рд╕реБрдирд╛ рдХрд┐ рдПрдХ рддреАрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рд╣реИ - рддрдерд╛рдХрдерд┐рдд рдЯрд╛рдЗрдо рдЯреНрд░рд┐рдЧрд░ рдбрд┐рдЬрд╝рд╛рдЗрдиред



рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдорд╛рдЗрдХрд▓ рдЬреЗред рдкреЛрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкреБрд╕реНрддрдХ "рдкреИрдЯрд░реНрди рд╕рдордп-рдЯреНрд░рд┐рдЧрд░ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП - www.safetty.net/publications/pttes

рдореИрдВ рдпрд╣рд╛рдВ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред



рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:



рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЛ рд╕рд╣рдХрд╛рд░реА рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХ (рд╕рд╣рдХрд╛рд░реА рдЕрдиреБрд╕реВрдЪрдХ) рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрд▓рд╛рд╕рд┐рдХ RTOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реАрдореЗрдкреНрдЯрд┐рд╡ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рд▓реЗрдЦрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд╛рднреЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддрд╛ рд╣реИ, рдмрд╣реБрдд рдХрдо рдУрд╡рд░рд╣реЗрдб рд▓рд╛рдЧрдд рдФрд░, рдЪрд╛рд╣реЗ рдХрд┐рддрдирд╛ рднреА рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реЛ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ред

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



рд╕реНрдпреВрдбреЛрдХреЛрдб рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред



void main(void) { scheduler_init(); add_task(Function_A, 2); add_task(Function_B, 10); add_task(Function_C, 15); scheduler_start(); while(1) { dispatch_tasks(); } }
      
      







рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рд╣рдо рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЯрд┐рдХреНрд╕реЗрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╢реЗрдбрд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдЕрдВрддрд╣реАрди рдЪрдХреНрд░ рдкрд░ рдЬрд╛рдПрдВред



рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ:



 typedef struct { void (* pTask)(void); uint32 Period; uint32 PeriodCur; uint8 RunMe; } task_descriptor_t;
      
      







рджрд░рдЕрд╕рд▓, рдЖрд░рдЯреАрдУрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, "рдУрд╡рд░рд╣реЗрдб" рдмрд╣реБрдд рдХрдо рд╣реИ - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рд▓реЙрдиреНрдЪ рдХреА рдЖрд╡реГрддреНрддрд┐, рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп - рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдЯрд┐рдХ, рдФрд░ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд╛рд░реНрдп рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



 task_descriptor_t all_task_list[MAX_TASKS];
      
      







рдХрд╛рд░реНрдп рд╕реВрдЪреА рдПрдХ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдВрдмрд╛рдИ рдХреА рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рд╣реИред



рд╢реЗрдбреНрдпреВрд▓рд░ рд╕реНрд╡рдпрдВ рдЯрд╛рдЗрдорд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рдПрдордПрд╕ - рдПрдХ рд╣реА рдЯрд┐рдХред



 void scheduler_update(void) interrupt { foreach (task in all_task_list) { task.PeriodCur--; if (task.PeriodCur == 0) { task.PeriodCur = task.Period; task.RunMe++; } } }
      
      







рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рд▓реЙрдиреНрдЪ рд╕реЗ рдкрд╣рд▓реЗ рд╢реЗрд╖ рдЯрд┐рдХреЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ 0 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред



рдФрд░ рдЕрдВрдд рдореЗрдВ - рдбрд┐рд╕реНрдкреИрдЪрд░ред рдЬреЛ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ рдШреВрдорддрд╛ рд╣реИред



 void dispatch_tasks(void) { foreach (task in all_task_list) { if (task.RunMe > 0) { task.pTask(); task.RunMe--; } } }
      
      







рд╣рдо рдЕрднреА рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдХрд╛рд░реНрдп рдореЗрдВ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕реАрдзреЗ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдШрдЯрд╛рддреЗ рд╣реИрдВред



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫ!



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╣реАрдВ рднреА рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЕрдирдВрдд рд▓реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реЗрдорд╛рдлреЛрд░реЗрд╕-рдХреНрдпреВрдЬрд╝-рдХреНрд░рд┐рдЯрд┐рдХрд▓ рд╕реЗрдХреНрд╢рди рдЬреИрд╕реЗ рдХреЛрдИ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред



рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИред



  1. рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд░реБрдХрд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорддрджрд╛рди рдореЛрдб рдореЗрдВ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЬреЛ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рддрд╛ рд╣реИред рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
  2. рдХрд╛рд░реНрдп рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдУред рдпрд╛рдиреА рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реВрдЪреА рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдШрдЯрдирд╛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдлрд┐рд░ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред
  3. рдпрджрд┐ рдХрд┐рд╕реА рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдХ рддрдХ рди рдкрд╣реБрдВрдЪреЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╣рдХрд╛рд░реА рдореЛрдб рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЛ рдбрд┐рд╕реНрдкреИрдЪрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!
  4. рдХрд┐рд╕реА рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкрд░ рд╕реАрдорд╛ред рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реИрдЦрд┐рдХ рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЛ рдмрд╛рдбрд╝ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред




рдЖрдЦрд┐рд░реА рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдХрд┐рддрд╛рдм рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рдЙрджрд╛рд╣рд░рдг рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣рд╛рдБ shedulers рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрд╕реНрддрдХ рдХрд╛ рджреЛ-рддрд┐рд╣рд╛рдИ рднрд╛рдЧ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬреЛ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рдкреБрд╕реНрддрдХ рд╕реЗ SPI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



 /*------------------------------------------------------------------*- SPI_X25_Write_Byte() Store a byte of data on the EEPROM. -*------------------------------------------------------------------*/ void SPI_X25_Write_Byte(const tWord ADDRESS, const tByte DATA) { // 0. We check the status register SPI_X25_Read_Status_Register(); // 1. Pin /CS is pulled low to select the device SPI_CS = 0; // 2. The 'Write Enable' instruction is sent (0x06) SPI_Exchange_Bytes(0x06); // 3. The /CS must now be pulled high SPI_CS = 1; // 4. Wait (briefly) SPI_Delay_T0(); // 5. Pin /CS is pulled low to select the device SPI_CS = 0; // 6. The 'Write' instruction is sent (0x02) SPI_Exchange_Bytes(0x02); // 7. The address we wish to read from is sent. // NOTE: we send a 16-bit address: // - depending on the size of the device, some bits may be ignored. SPI_Exchange_Bytes((ADDRESS >> 8) & 0x00FF); // Send MSB SPI_Exchange_Bytes(ADDRESS & 0x00FF); // Send LSB // 8. The data to be written is shifted out on MOSI SPI_Exchange_Bytes(DATA); // 9. Pull the /CS pin high to complete the operation SPI_CS = 1; }
      
      





рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реИрдЦрд┐рдХ рдХреЛрдб, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА:





рдЦреИрд░, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдПрд╕рдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрдХреВрд▓ред рднрдпрднреАрдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред



рддрдерд╛рдХрдерд┐рдд рддрдерд╛рдХрдерд┐рдд рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╢реЗрдбреНрдпреВрд▓рд░, рдЬрдм рдПрдХ рдФрд░ рдЕрд╡рд░реЛрдз рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред



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



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╢рд╛рдпрдж рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред рдХрд╣реАрдВ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдЬреЛ 99% рд╕рдордп рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рдордп рдХреЗ рд▓рд┐рдП рддрддреНрдХрд╛рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрд╣рд╛рдВ рд╕реБрдкрд░ рд╕рд╛рдЗрдХрд┐рд▓ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



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



All Articles