рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╛рда рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрд╣реБрдд рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдРрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрд╛рдЧрдЬ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рд▓рд┐рдХрд╛ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рдХрд╛ рдкрд╛рда: YouTube рдкрд░ рдЗрд╕ рдпрд╛ рдЙрд╕ рд░рд╛рдЧ рдХреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдЕрджреНрднреБрдд рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ (рдЬреЛ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо "рд╕рд░реНрдЧреЗрдИ рд╡реЛрд░реЛрддреНрд╕реЛрд╡" рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдФрд░ рдпрд╛рдж рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рдХрд╛рдЧрдЬ рдкрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╕рдмрдХ рдХреЗ рддрд╣рдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреБрдЫ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ), рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП (рд▓реЗрдХрд┐рди рдореИрдВ рд▓рд╛рд▓рдЪреА рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдШрд░реЗрд▓реВ)ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░реЗ рдмрд╛рд▓рд┐рдХрд╛ рдорд╛рдорд▓реЗ рдореЗрдВ, рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛: рдореИрдВрдиреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЗрдЦрд╛, рдЙрд╕реЗ рд░реЛрдХрд╛, рд▓реЗрдЦрдХ рдХреЗ рдкреАрдЫреЗ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛, рдФрд░ рджреЗрдЦрддрд╛ рд░рд╣рд╛ред рдЕрдЧрд░ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрдирд╛, рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рд╣рд╛рде рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд╡рд╛ рджреЗрдВ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗ рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рдЕрдЧрд░ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрдЯрди рд╕рдордЭреМрддреЗ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреБрдЫ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рдеред рддреЛ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрдИ, рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬрдм рд╕рднреА рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдорд╛рдирд╡ рдЬрд╛рддрд┐ рдиреЗ рдкреАрдПрд╕ / 2 рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб рд▓рд╛рдПред рдмреЗрд╢рдХ, рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд╢реАрди рд╕реЗ рдЬреЛрдбрд╝рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ Ctrl рджрдмрд╛рдпрд╛, рджреВрд╕рд░реЗ рдкрд░ рдСрд▓реНрдЯ рдФрд░ рддреАрд╕рд░реЗ рдкрд░ рдбреЗрд▓ред рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрдм рд╕реЗ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдореБрдЦреНрдп рдПрдХ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдХреЛрдб рднреЗрдЬ рджреЗрдЧрд╛ред
рддреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдкреЗрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ рдЬреЛ рдПрдХ рдХреАрдмреЛрд░реНрдб рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдирд┐рдпрдВрддреНрд░рдг рдХреЛрдб рднреЗрдЬрддрд╛ рд╣реИред рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡реАрдПрд▓рд╕реА рдкреНрд▓реЗрдпрд░ рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдХреЛрдб рдХрд╛ рдлрд╝реБрд▓ рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ YouTube рдкрд░ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрддреЗ рд╕рдордп рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдЙрджреНрджреЗрд╢реНрдп рдерд╛ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдСрдирд▓рд╛рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рдЫрд╛рдкреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд▓реЗрдЦрдХ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рджреЗрдЦрдирд╛ рдЗрддрдирд╛ рдиреИрддрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рддреЛ, рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдХрд╛рдо рдХрд╛ рддрд░реНрдХ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдХрдИ рдкреИрдбрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдПред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдЗрдирдореЗрдВ рд╕реЗ 3-4 рдХрд╛рд░реНрдп рдЧрд┐рдирд╛рдП: рдЪрд╛рд▓реВ, рдмрдВрдж, рд╡рд╣рд╛рдБ рд╣рд╡рд╛, рдкрд╡рди рд╡рд╛рдкрд╕ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХрд┐рддрдирд╛ рд▓реЗрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдореИрдВ рд╕реНрдкрд░реНрд╢ рд╕реЗ рдкреИрдбрд▓ рдХреИрд╕реЗ рд╕рдордЭреВрдВрдЧрд╛, рдФрд░ рджреБрдЦреА рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдкреВрд░реЗ рддрд░реНрдХ рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕реНрдЯрд╛рд░реНрдЯ-рд╕реНрдЯреЙрдк, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдХреНрд╕рд░ рдПрдХ рд╣реА рдХреБрдВрдЬреА рдкрд░ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕реНрдерд╛рди рдкрд░ред рдФрд░ рд░рд┐рд╡рд╛рдЗрдВрдб рдХрд░ рд░рд╣рд╛ рд╣реИред VLC рдкреНрд▓реЗрдпрд░ рдореЗрдВ "Shift + Left" рд╣реИред YouTube, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рднреАред рдФрд░, рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред
рд╡рд╛рд╣! рдЪрд▓реЛ рдкреЗрдбрд▓ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ "рд╕реНрдЯрд╛рд░реНрдЯ-рд╕реНрдЯреЙрдк" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ "рд░рд┐рд╡рд╛рдЗрдВрдб" рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдореЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реА рдкрддреНрдиреА рдиреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛, рдЖрдпрд░рд┐рд╢ рдиреГрддреНрдп рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдбрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдг рдЖрд╡реЗрдЧреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдПрдХ рдкреЗрдбрд▓ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЦреИрд░, рдЕрдм рд╣рдо рд▓рдВрдмреА рдФрд░ рдЫреЛрдЯреА рдкреНрд░реЗрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВрдЧреЗред
рдпрд╛рдВрддреНрд░рд┐рдХреА
рдЬреЛ рд▓реЛрдЧ рдЪрдкреНрдкрд▓ рдореЗрдВ рдШрд░ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдерд┐рдВрдЧрд╡рд┐рд╡рд░реНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛)ред рд╣рдо рдПрдХ рд╕реЗрдВрдЯреАрдореАрдЯрд░ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╡реНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЯрди рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдмреЙрдХреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдореЗрдВ рдкреЗрдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рдкреЗрдбрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЪрдкреНрдкрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдПрдХ рдмрдбрд╝реА рд╕рддрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреИрд░ рдХреЛ рдЪреЛрдЯ рди рдкрд╣реБрдВрдЪреЗред
рдЕрд▓реА рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдкреЗрдбрд▓ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдмреЗрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдлреБрдЯ рд╕реНрд╡рд┐рдЪ рд╢рдмреНрдж рдХреА рдЦреЛрдЬ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд╣рд╛рдВ рдХреА рдХреАрдорддреЗрдВ 30 рд░реВрдмрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреАрдордд рдкрд░, рдбрд┐рд▓реАрд╡рд░реА рдХреА рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ рдЪрд╛рд░ рд╕реМ рд░реВрдмрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдПрдХ рдкреЗрдбрд▓ рдвреВрдВрдврдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпреЛрдЧ "рдореВрд▓реНрдп рдкреНрд▓рд╕ рд╡рд┐рддрд░рдг" 150 рд░реВрдмрд▓ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдФрд╕рддрди рдХреБрдЫ рдорд╣реАрдиреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рддреАрди рдорд╣реАрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред
рддреЛ рдореИрдВ рдФрд░ рддреЗрдЬрд╝ рддрд░реАрдХреЗ рд╕реЗ рдЧрдпрд╛: 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдкреИрдбрд▓ рдмрдирд╛рдпрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ (рдФрд░ рдерд┐рдВрдЧрд╡рд┐рд╡рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд┐рдХрд▓реНрдк) рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдХреНрд╖ рдзрд╛рддреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ M6x60 рдлрд░реНрдиреАрдЪрд░ рдмреЛрд▓реНрдЯ рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рд▓рдЧреЗ рдирдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрдЯрди (PSW-13), рдЬреЛ рдХрд┐ рдкрдбрд╝реЛрд╕реА рд░реЗрдбрд┐рдпреЛ рдкрд╛рд░реНрдЯреНрд╕ рдореЗрдВ рдерд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдпрд╛ред рд╕реНрд░реЛрдд рд╕рд╛рдордЧреНрд░реА рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ:

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

рдпрд╣рд╛рдБ рдПрдХ рд▓рдЧрднрдЧ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

рдФрд░ рдпрд╣рд╛рдБ рдкреЗрдбрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИ:

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрд╕рдЯреАрдПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рд╕рд╣реА рдирд╣реАрдВ рдерд╛ред рдлрд┐рд░ рднреА, рдХреЛрдИ рднреА рдЗрд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдЦрд░реЛрдЯ рдФрд░ PSW-13 рдмрдЯрди рдХреЗ рд╕рд╛рде M6x60 рдмреЛрд▓реНрдЯ рдкрд╛рддрд╛ рд╣реИ)ред рдкрд╣рд▓реА рдмрд╛рд░ рдкрд░реНрдпрд╛рдкреНрдд, рдФрд░ рдлрд┐рд░ - рдЖрдк ALI рдХреЗ рд╕рд╛рде рдореИрдХреЗрдирд┐рдХ рдФрд░ рдСрд░реНрдбрд░ рдкрд░ рдореБрд╣рд░ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
USB рдбрд┐рд╡рд╛рдЗрд╕
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреАрдПрд╕рдУрд╕реА рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреИрдбрд▓ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдирд╕реБрдирд╛ рд╣реИред рдореИрдВ STM32F103C8T6 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдЕрдм рд▓рдЧрднрдЧ 120 рд░реВрдмрд▓ (рдбрд┐рд▓реАрд╡рд░реА рд╕рд╣рд┐рдд) рдХреЗ рд▓рд┐рдП ALI рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмреЗрд╢рдХ, рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AVR рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд╕реНрддреЗ рдмреЛрд░реНрдб рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдХреАрдордд рдХрд╛ рдЕрдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдФрд░ JTAG рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг STM32 рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдордп рдХрд╛рдлреА рдХрдо рд╣реИред рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп (рдШрд░ рдкрд░ рднреА) - рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЦрд░реНрдЪ рднреА рд╣реЛрддрд╛ рд╣реИред рддреЛ, рдХреБрд▓ рдорд╛рдирджрдВрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ "рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреАрдордд + рд╢реНрд░рдо рд▓рд╛рдЧрдд", STM32F103 рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдврд╝ рджрд░реНрдЬрди рдРрд╕реЗ рдореЙрдХ-рдЕрдк рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдбрд┐рд▓реАрд╡рд░реА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдЕрдм тАЛтАЛрд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рдЪрд┐рдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреИрдпрд╛рд░ рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдиреЗрдЯ рд╕рд░реНрдл рдХрд┐рдпрд╛ред рдореБрдЭреЗ Habr рдкрд░ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдпреВрдПрд╕рдмреА рдорд╛рдЙрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдХреАрдмреЛрд░реНрдб рдХреА рдЬрд░реВрд░рдд рд╣реИред рдХреАрдмреЛрд░реНрдб рдХреЗ рд╡рд┐рд╖рдп рдкрд░, рдореБрдЭреЗ рдордВрдЪреЛрдВ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдорд╛рд░реНрдЯ рдпреБрдХреНрддрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ (рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛) рдФрд░ рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдЬреЛрдбрд╝реЗ, рд▓реЗрдХрд┐рди рдЧреАрдерд╣рдм рдкрд░ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ (рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛)ред рд▓реЗрдХрд┐рди рд╡рд╣ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡рд╣ рд╣рдореЗрд╢рд╛ рдорд┐рд▓реЗрдЧрд╛ред рдпрд╣рд╛рдВ рдПрдХ
рдЕрджреНрднреБрдд рд▓реЗрдЦ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдПрдХ рд╣реИ, рдореИрдВ рдЗрд╕ рдЧреИрд░-рд░реВрд╕реА рд╢рдмреНрдж рд╕реЗ рдирд╣реАрдВ рдбрд░рддрд╛ рд╣реВрдВ, рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдбрд▓реЙрдХ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦреВрдВрдЧрд╛)ред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд┐ рдХреНрдпреВрдм рдПрдордПрдХреНрд╕ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП "рдордЫрд▓реА" рд╕реЗ рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд▓реЗрдЦрдХ рдиреЗ рдирд╣реАрдВ рдХреА рд╡рд╣ рдкреНрд░рдореБрдЦ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХреА рдереАред рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

рдорд░рд╣рдо рдореЗрдВ рдордХреНрдЦреА рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпреВрдм рдПрдордПрдХреНрд╕ рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ, рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдирд╛рдо рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдкрд╛рда рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдХрд╣рд╛рдВ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗ? рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
So. рдореИрдВрдиреЗ рдХреНрдпреВрдм рдПрдордПрдХреНрд╕ рдореЗрдВ рдПрдХ рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рднреА рдмрджрд▓рд╛рд╡ рдХрд┐рдПред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рдЗрд╕рдХреЗ рдмрд╛рдж, рдмрдЯрди рдкреЛрд░реНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝реЗрдВред рдореИрдВрдиреЗ рдкреАрдмреА 12 рдЪреБрдирд╛ (рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдкрд░реНрдХ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХреЗ рдХреЛрдиреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ)ред рдЪреВрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯрд┐рди рдЪрд┐рдЭреЛрд╡ рдХреЗ mcucpp рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрд╣реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ "-C99" рдореИрдХреНрд░реЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, main.cpp рдХреЛ
main.c рдирд╛рдо рдмрджрд▓реЗрдВ, рдФрд░ рдлрд┐рд░ рдШреЛрд╖рдгрд╛ рдЬреЛрдбрд╝реЗрдВ:
typedef Mcucpp::IO::Pb12 pedal1;
рд╣рдо
рдореБрдЦреНрдп () рдлрдВрдХреНрд╢рди рдХреЛ рдкреЛрд░реНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдкреЛрд░реНрдЯ рдХреНрд▓реЙрдХрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реБрдП, рдкреИрд░ рдХреА рджрд┐рд╢рд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реБрдП, рд╕рд╕реНрдкреЗрдВрд╢рди рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реБрдП):
pedal1::ConfigPort::Enable(); pedal1::SetDirRead(); pedal1::SetPullUp (pedal1::Port::PullUp);
рджрд░рдЕрд╕рд▓, рд╣рд░ рдЪреАрдЬ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╡реЗрд░рд┐рд▓реЛрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдореБрдЦреНрдп рдирд┐рдХрд╛рдп рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ, рдореИрдВ рдмрд╕ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдШрдбрд╝реА рдХреА рджрд╛рд▓реЛрдВ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЯрд┐рдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП,
stm32f1xx_it.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо
рдЯрд┐рдХ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝рд╛
рдЧрдпрд╛ рдерд╛ :

рдПрдХ рд╣реА рдкрд╛рда: void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); HAL_SYSTICK_IRQHandler(); /* USER CODE BEGIN SysTick_IRQn 1 */ TickProcess(); /* USER CODE END SysTick_IRQn 1 */ }
рдореИрдВрдиреЗ
TickProcess () рдлрд╝рдВрдХреНрд╢рди рдХреЛ
рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд░рдЦрд╛ред рд╕реА.рдкреА. рдкрд╣рд▓реЗ, рдЗрд╕рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдлрд┐рд░ рднрд╛рдЧреЛрдВ рдореЗрдВред
рдпрд╣рд╛рдБ рдкреВрд░рд╛ рд╕рдорд╛рд░реЛрд╣ рд╣реИ: uint8_t report [8] = {0,0,0,0,0,0,0,0}; uint32_t* pReport = (uint32_t*)report; extern "C" void TickProcess() { // 20!!! static const int shortTime = 700; // static const int longTime = 2000; // static int localTick = 0; static int tickDuringButton = 0; static bool bButtonStatePrev; bool bButtonState = pedal1::IsSet(); // if ((!bButtonState) && bButtonStatePrev) { tickDuringButton = 0; } // if (bButtonState && (!bButtonStatePrev)) { // // , 50 () if ((tickDuringButton >100)&&(tickDuringButton < shortTime)) { // report [2] = 0x2C; } } // if ((!bButtonState) && (!bButtonStatePrev)) { if ((tickDuringButton == shortTime)||(tickDuringButton > longTime)) { // Shift+ report [0] = 2; // Shift report [2] = 0x50; // } } // bButtonStatePrev = bButtonState; tickDuringButton += 1; if (localTick++ % 20 == 0) { USBD_HID_SendReport (&hUsbDeviceFS,report,sizeof(report)); pReport [0] = 0; pReport [1] = 0; } }
рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИред рд╣рд░ 20 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ (рдпрджрд┐ рдХреЛрдИ рдмрдЯрди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рд╡реИрд╕реЗ рднреА рднреЗрдЬрддреЗ рд╣реИрдВ, рд╕рд┐рд░реНрдл рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде)ред рдЪреВрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдЙрд╕рдХреЗ рдмреАрд╕ рдХреЙрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЪрд░ рд╣реИ:
static int localTick = 0;
рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреЛрдб (рд╣рдо рдбреЗрдЯрд╛ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдмрдлрд░ рдорд┐рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдЧрд▓реЗ рд╕рддреНрд░ рд╕реЗ рд╢реВрдиреНрдп рднреЗрдЬрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ):
if (localTick++ % 20 == 0) { USBD_HID_SendReport (&hUsbDeviceFS,report,sizeof(report)); pReport [0] = 0; pReport [1] = 0; }
рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдпрд╣ рдкреЗрдбрд▓ рджрдмрд╛рдиреЗ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рднрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╣рд╛ рдХрд┐ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╡реЗрд░рд┐рд▓реЛрдЧ рдЬреИрд╕реА рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ: рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЪрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдЯрди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд░рдЦреА рдЧрдИ рд╣реИ:
bool bButtonState = pedal1::IsSet();
рдФрд░ рдПрдХ рдЪрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдХреА рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ 1 рдПрдордПрд╕ рдЯрд╛рдЗрдорд░ рд╕реЗ рдкрд┐рдЫрд▓реА рдмрд╛рдзрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдмрдЯрди рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ):
static bool bButtonStatePrev;
рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдмрдЯрди рдорд╛рди рдХреЛ
рдЧрд▓рдд , рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдмрдЯрди -
рд╕рддреНрдп рджреЗрддрд╛ рд╣реИ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╣рдореЗрд╢рд╛ рдмрдЯрди рдХреА рдЧрддрд┐рд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
рд╣рдо рджреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВред рдПрдХ рд▓рдШреБ рдкреНрд░реЗрд╕ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЗрд╕ 700 рдПрдордПрд╕ рд╕реЗ рдХрдо рд╕рдордп рддрдХ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╣реИред рджреВрд╕рд░рд╛ рд╡рд╣ рд╕рдордп рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдСрдЯреЛ-рд░рд┐рдкреАрдЯ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕рд╛рдд рд╕реМ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдЖрдк рдХреБрдВрдЬреА рдХреЛрдб рднреЗрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЕрдЪрд╛рдирдХ рд╕реЗ рд╣рд╡рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╛рдо рдХрд╛ рддрд░реНрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: 700 рдПрдордПрд╕ рдХреЗ рдмрд╛рдж, рдПрдХ рдПрдХрд▓ рдХреЛрдб "рд╢рд┐рдлреНрдЯ + рд▓реЗрдлреНрдЯ" рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреЗрдбрд▓ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреЗрдбрд▓ рдХрд╛ рдЖрдпреЛрдЬрди рдЬрд╛рд░реА рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рд╕реЗрдХрдВрдб рд╕реЗ рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдкреЗрдбрд▓ рдЬрд╛рд░реА рд╣реЛрдиреЗ рддрдХ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
const int shortTime = 700; // const int longTime = 2000; //
рд╡рд╣ рд╕рдордп рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
static int tickDuringButton = 0;
рдпрджрд┐ рдмрдЯрди рдЕрднреА-рдЕрднреА рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдЪрд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░рддреЗ рд╣реИрдВ, рд╕рдордп рдХреА рдПрдХ рдирдИ рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
// if ((!bButtonState) && bButtonStatePrev) { tickDuringButton = 0; }
рдпрджрд┐ рдмрдЯрди рдЕрднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рдордп рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХрд┐рддрдирд╛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ (рдЕрдм рдпрд╣ "100 рдПрдордПрд╕ рд╕реЗ рдХрдо рд╣реИ") - рдпрд╣ рдПрдХ рдмрдХрд╡рд╛рд╕ рд╣реИред рдпрд╣ рдЧрд┐рдирддреА рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХреНрд▓рд┐рдХ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред рдпрджрд┐ рд╣рдо рд▓рдШреБ рдкреНрд░реЗрд╕ рдХреА рдЕрд╡рдзрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рдВрдмреЗ рдкреНрд░реЗрд╕ рдиреАрдЪреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐, рдПрдХ рдЫреЛрдЯреА рдкреНрд░реЗрд╕ рдХреЗ рднреАрддрд░, рд╣рдо рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдмрдлрд░ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдЖрдиреЗ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛):
// if (bButtonState && (!bButtonStatePrev)) { // // , 100 () if ((tickDuringButton >100)&&(tickDuringButton < shortTime)) { // report [2] = 0x2C; } }
рдпрджрд┐ рдмрдЯрди рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджрдмрд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "Shift + Left" рднреЗрдЬрддреЗ рд╣реИрдВ:
- рдмрдЯрди рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ 700 ms (рдПрдХрд▓ рдкреИрдХреЗрдЬ) рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ;
- рдмрдЯрди рдХреЛ 2 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрдЯрди рдЬрд╛рд░реА рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
// if ((!bButtonState) && (!bButtonStatePrev)) { if ((tickDuringButton == shortTime)||(tickDuringButton > longTime)) { // Shift+ report [0] = 2; // Shift report [2] = 0x50; // } }
рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рд╣реИред рдпрд╣ рдХреЛрдб рдЙрд╕ "рдордЫрд▓реА" рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ Cube MX рдиреЗ рд╣рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИред рд╣рдо рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ ... рдирд╣реАрдВ, рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рдпрд╣рд╛рдВ рд╡реЗ рд╕рднреА рдкрдХрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢реБрд░реВ рдореЗрдВ рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛), рд╣рдо рдЙрдиреНрд╣реЗрдВ 10 рдорд┐рдирдЯ рдореЗрдВ JTAG рдбрд┐рдмрдЧрд┐рдВрдЧ (AVR рдХреЛ рдирдорд╕реНрдХрд╛рд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ, рд╣рдо рд╕рд┐рд▓рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЦреБрд╢ рд╣реИрдВ ...
рд╡реИрдХрд▓реНрдкрд┐рдХ рдбрд┐рдЬрд╛рдЗрди
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╛рд▓рд┐рдХрд╛ (рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреНрдп рджреГрд╢реНрдп) рдХреЗ рдмрд┐рдирд╛ рдРрд╕реА рдЪреАрдЬреЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрдкрдиреЗ рдкреЗрдЯ рдкрд░ рд▓реИрдкрдЯреЙрдк рдХреЗ рд╕рд╛рде рдмрд┐рд╕реНрддрд░ рдкрд░ рд▓реЗрдЯрд╛ рд╣реБрдЖ, рд╕рдорд╛рдЪрд╛рд░ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдкрд╛рда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рд░ рд╕рдордп рдЕрдкрдиреЗ рджрд╛рд╣рд┐рдиреЗ рд╣рд╛рде рдХреЛ рдореЛрдбрд╝рдХрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрд╣рдиреА рдореЗрдВ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд▓рд╛рд▓ рдмрдЯрди рдХрд╛ рд╕рдкрдирд╛ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд╣рд╛рде рдХреЛ рдЭреБрдХрд╛рдП рдмрд┐рдирд╛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреЗрдбрд▓ рдХреЗ рд╕рдорд╛рди рдШрдЯрдХреЛрдВ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЧрд░реНрдо рдЧреЛрдВрдж рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдлрд░реНрдиреАрдЪрд░ рдмреЛрд▓реНрдЯ рдХреА рдЬрдЧрд╣ред рдХреБрд▓: PSW13 рдмрдЯрди, STM32F103C8T6 рдмреНрд░реЗрдбрдмреЛрд░реНрдб, 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ, рдЧрд░реНрдо-рдкрд┐рдШрд▓ рдЪрд┐рдкрдХрдиреЗ рд╡рд╛рд▓рд╛ред рдЦреИрд░, "рдлрд░реНрдорд╡реЗрдпрд░" рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдХреЛрдбреНрд╕ рдХреЛ "PgDn" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ "рдКрдкрд░"ред


рдирд┐рд╖реНрдХрд░реНрд╖
рдЬрдм рдЖрдкрдХреЗ рд╣рд╛рде рд╡реНрдпрд╕реНрдд рд╣реЛрдВ рддреЛ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ рдкреЗрдбрд▓ рдЬреЛ рдпреВрдПрд╕рдмреА-рдХреАрдмреЛрд░реНрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреЗрдбрд▓ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрдпрди рдХрд░рдХреЗ, рдХрдИ рдХреБрдВрдЬреА рдХреЛрдб рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдЦ рдПрдХ рдкреЗрдбрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреЛ рдкреНрд░рдХрд╛рд░ (рд▓рдШреБ рдФрд░ рд▓рдВрдмреА рдкреНрд░реЗрд╕) рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред
рдЕрд▓реА рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдпрд╛рдВрддреНрд░рд┐рдХреА рд╢рдмреНрдж рдлрд╝реБрдЯ рд╕реНрд╡рд┐рдЪ рдХреЗ рддрд╣рдд рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдПрдХ 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреНрд░реЗрдбрдмреЛрд░реНрдб STM32F103C8T6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХреЛрдВ ST3232 рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдХреНрдпреВрдм рдПрдордПрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ "рдордЫрд▓реА" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ "рдлрд░реНрдорд╡реЗрдпрд░" рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдкрд╛рда рдХреЗ рдХрдИ рд╕реНрдХреНрд░реАрдиреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ (2K рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП - рдПрдХ рд╕реНрдХреНрд░реАрди)ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреВрд░реЗ рдЙрдкрдХрд░рдг (рдпрд╛рдВрддреНрд░рд┐рдХреА + "рдлрд░реНрдорд╡реЗрдпрд░") рдХреЛ рдПрдХ рд╢рд╛рдо рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рд╛рде рд╣реА 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдЪрд╛рд░ рдШрдВрдЯреЗ рд▓рдЧ рдЧрдПред
рдкреЗрдбрд▓ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдПрд╕рдЯреАрдПрд▓ рдлрд╛рдЗрд▓реЗрдВ
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА
рд╣реИрдВ (рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд░реНрдерди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рддрддреНрд╡ рдХреЛ 0.4 рдорд┐рдореА рд╕реЗ рдХрдо рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ: рд╕рддрд╣ рдереЛрдбрд╝рд╛ рдЧреЛрд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдореЙрдбрд▓ рдХреЛ рдХрдо рдХрд░рдХреЗ, рд╣рдо рдореБрджреНрд░рд┐рдд рднрд╛рдЧ рдХреЛ рд╕рдкрд╛рдЯ рдмрдирд╛ рджреЗрдВрдЧреЗ)ред
"рдмрдбрд╝реЗ рд▓рд╛рд▓ рдмрдЯрди" рдХреА рдПрд╕рдЯреАрдПрд▓ рдлрд╛рдЗрд▓реЗрдВ
рдпрд╣рд╛рдВ рд╕реЗ
рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА
рд╣реИрдВ ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП HEX рдлрд╛рдЗрд▓
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА
рд╣реИрдВ ред
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд┐рдерд┐ рд╕рдВрдпреЛрдЧ рд╕реЗ рдирд╣реАрдВ рдЪреБрдиреА рдЧрдИ рдереАред рдкрд░рд┐рд╖рдж рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЙрд╕ рджрд┐рди рдПрдХ рдЧрдВрднреАрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк "рдПрд▓реЗрдХреНрд╕реА рдЖрд░реНрдХрд┐рдкреЛрд╡реНрд╕реНрдХреА", "рджрд┐рдорд┐рддреНрд░реА рдХрд▓рд┐рдирд┐рди", "рдХреНрд░реИрдирдмреЗрд░реА рд╢реЛ", "рдПрд▓реЗрдХреНрд╕реА рдХреЛрдбреЗрдВрдХреЛ" рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдкрд░ рдкрд╛рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдХрд╛рджрдорд┐рдХ рдмрд╛рд▓рд┐рдХрд╛ рдПрдХ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреА рддрд░рд╣ рд╣реИред рджреЛрдиреЛрдВ рд╡рд╣рд╛рдБ рдФрд░ рд╕рдВрдпреБрдХреНрдд рдкреВрд░реНрдг рд╕рд╛рджрдЧреА рдФрд░ рдЙрдиреНрдорддреНрдд рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╢рдХреНрддрд┐ рд╣реИрдВред рдФрд░ "рд╕рд░реНрдЧреЗрдИ рд╡реЛрд░реНрддреНрд╕реЛрд╡" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
рдСрдкрд░реЗрд╢рди рдХреЗ 8 рдорд╣реАрдиреЗ рдмрд╛рдж, рдкреАрдПрд╕рдбрдмреНрд▓реНрдпреВ -13 рдмрдЯрди рдХрдИ рдореЗрдВ рд╕реЗ рдПрдХ рдмрд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдХреЗрд╡рд▓ рдмрд╣реБрдд рдордЬрдмреВрдд рджрдмрд╛рд╡ рдХреЗ рд╕рд╛рдеред рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╡рд░рдг рдирд┐рдХрд▓рд╛ред рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдирдпрд╛ рдмрдЯрди, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╢рдХреНрддрд┐ рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рдкреИрдбрд▓ рдкрд░ рдЙрджрд╛рд╕ рд░рд╣рддреА рдереАред рдореБрдЭреЗ рдЗрд╕реЗ рдбреНрд░реЗрдореЗрд▓ рдХреЗ рд╕рд╛рде рдкреАрд╕рдирд╛ рдерд╛ред рдореЗрд░реЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдХреМрди рджреЛрд╣рд░рд╛рдПрдЧрд╛ - рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдЖрдкрдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдмрдЯрди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдЗрд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдПрдХ рдмрд┐рдЬрд▓реА рдХреЗ рдЯреЗрдк рдХреЛ рдЦреЛрджрдирд╛ред рдЗрд╕ рдмрдЯрди рдХреЗ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рднрд╛рдЧ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдмрд╣реБрдд рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ - рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред