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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ AVR рдФрд░ Arduino рдЯрд╛рдЗрдорд░ рдФрд░ Arduino рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
рдЯрд╛рдЗрдорд░ рдХреНрдпрд╛ рд╣реИ?
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдХреА рддрд░рд╣, рдПрдХ рдЯрд╛рдЗрдорд░ рдХреБрдЫ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдореЗрдВ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдХреНрд╖рдг рдЖрддрд╛ рд╣реИ, рддреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЯрд╛рдЗрдорд░, рдмрд╛рд╣рд░реА рд╡реНрдпрд╡рдзрд╛рди рдХреА рддрд░рд╣, рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдорд┐рд▓рд┐рд╕ () рджреЗрд░реА рдХреЙрд▓ рдХреЛ рд▓реВрдк рдХрд░рдиреЗ рдпрд╛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдорд░ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИред
рддреЛ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдПрд▓рдИрдбреА рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рд╕рдордп рдПрдХ рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рдПрд▓рдИрдбреА рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рд╣реЛ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХрд╛ рдХреНрд╖рдг рдЖ рдЧрдпрд╛ рд╣реИред рдЯрд╛рдЗрдорд░ рдХреЗ рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдмрд╕ рд╡реНрдпрд╡рдзрд╛рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░реЗрдВред рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдПрд▓рдИрдбреА рдареАрдХ рд╕рдордп рдкрд░ рдЭрдкрдХреА рд▓реЗрдЧрд╛ред
рдЯрд╛рдЗрдорд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдпрд╣ рдПрдХ рдЧрдгрдирд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдирд╛рдордХ рдПрдХ рдЪрд░ рдХреЛ рдмрдврд╝рд╛рдХрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдорддрдЧрдгрдирд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рддрдХ рдЧрд┐рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЯрд╛рдЗрдорд░ рдЕрдкрдиреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЯрд╛рдЗрдорд░ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд▓реИрдЧ рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реБрдЖ рд╣реИред
рдЖрдк рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдЯрд╛рдЗрдорд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд╛рдзрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд░реБрдХрд╛рд╡рдЯ рдХреА рддрд░рд╣, рдЖрдк рдЯрд╛рдЗрдорд░ рдХреЗ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд┐рд╕ рд░реВрдЯреАрди ( ISR ) рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред ISR рд╕реНрд╡рдпрдВ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдзреНрд╡рдЬ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдЧрддрд┐ рдХреЗ рдХрд╛рд░рдг рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
рд╕рдЯреАрдХ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рд╡реИрд▓реНрдпреВ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреЛ рдШрдбрд╝реА рд╕реНрд░реЛрдд рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдШрдбрд╝реА рд╕реНрд░реЛрдд рд▓рдЧрд╛рддрд╛рд░ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЯрд╛рдЗрдорд░ рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдЙрдВрдЯрд░ рд╡реИрд▓реНрдпреВ рдХреЛ рдПрдХ рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдорд░ рдПрдХ рдШрдбрд╝реА рд╕реНрд░реЛрдд рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рд╕рдордп рдХреА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рдЗрдХрд╛рдИ рдЪрдХреНрд░ рдЕрд╡рдзрд┐ рд╣реИред рдпрджрд┐ рдЖрдк 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдШрдбрд╝реА рд╕рд┐рдЧреНрдирд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдорд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди (рдпрд╛ рдЯрд╛рдЗрдорд░ рдЕрд╡рдзрд┐) рд╣реЛрдЧрд╛:
рдЯреА = 1 / рдПрдл (рдПрдл рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рд╣реИ)
рдЯреА = 1/1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ = 1/10 ^ 6 рд╣рд░реНрдЯреНрдЬ
рдЯреА = (1 = 10 ^ -6) рдПрд╕
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯрд╛рдЗрдорд░ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдПрдХ рд╕реЗрдХрдВрдб рдХрд╛ рдПрдХ рдорд┐рд▓рд┐рдпрдирд╡рд╛рдВ рд╣реИред рдпрджреНрдпрдкрд┐ рдЖрдк рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдШрдбрд╝реА рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪрд┐рдк рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕реНрд░реЛрдд рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯрд╛рдЗрдорд░ рдХреЗ рдкреНрд░рдХрд╛рд░
8-рдмрд┐рдЯ AVR рдЪрд┐рдк рдкрд░ рдорд╛рдирдХ Arduino рдмреЛрд░реНрдбреЛрдВ рдореЗрдВ, рдПрдХ рд╕рд╛рде рдХрдИ рдЯрд╛рдЗрдорд░ рд╣реИрдВред Atmega168 рдФрд░ Atmega328 рдЪрд┐рдкреНрд╕ рдореЗрдВ рддреАрди рдЯрд╛рдЗрдорд░, рдЯрд╛рдЗрдорд░ 1 рдФрд░ рдЯрд┐рдорд░ 2 рдЯрд╛рдЗрдорд░ рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░ рднреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реАрд╕реЗрдЯ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрдорд░ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджреА рдЧрдИ рд╣реИрдВред
Timer0:
рдЯрд╛рдЗрдорд░ 0 рдПрдХ 8-рдмрд┐рдЯ рдЯрд╛рдЗрдорд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЧрд┐рдирддреА рд░рдЬрд┐рд╕реНрдЯрд░ 255 (рдпрд╛рдиреА рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрд╛рдЗрдЯ) рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреА рд╣реИред Timer0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ Arduino рдЕрд╕реНрдерд╛рдпреА рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рджреЗрд░реА () рдФрд░ рдорд┐рд▓рд┐рд╕ () рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВред
Timer1:
рдЯрд┐рдорд░ 1 рдПрдХ 16-рдмрд┐рдЯ рдЯрд╛рдЗрдорд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 65535 (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ) рдХреА рдЕрдзрд┐рдХрддрдо рдЧрдгрдирд╛ рдореВрд▓реНрдп рд╣реИред рдпрд╣ рдЯрд╛рдЗрдорд░ Arduino рд╕рд░реНрд╡реЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
Timer2:
Timer2 8 рдмрд┐рдЯ рд╣реИ рдФрд░ Timer0 рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Arduino рдЯреЛрди () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯрд┐рдорд░ 3, рдЯрд┐рдорд░ 4, рдЯрд╛рдЗрдорд░ 5:
ATmega1280 рдФрд░ ATmega2560 рдЪрд┐рдкреНрд╕ (Arduino рдореЗрдЧрд╛ рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд) рдореЗрдВ рддреАрди рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд╛рдЗрдорд░ рд╣реИрдВред рд╡реЗ рд╕рднреА 16 рдмрд┐рдЯ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдорд░ 1 рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ
рдЗрди рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AVR рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВред рдЯрд╛рдЗрдорд░ рдореЗрдВ рдХрдИ рдРрд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рджреЛ - рдЯрд╛рдЗрдорд░ / рдХрд╛рдЙрдВрдЯрд░ рдХрдВрдЯреНрд░реЛрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдЪрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдЯреАрд╕реАрд╕реАрдЖрд░рдПрдХреНрд╕рдП рдФрд░ рдЯреАрд╕реАрд╕реАрдЖрд░рдПрдХреНрд╕рдмреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХреНрд╕ рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЯреАрд╕реАрд╕реАрдЖрд░ 1 рдП рдФрд░ рдЯреАрд╕реАрд╕реАрдЖрд░ 1 рдмреА, рдЖрджрд┐) рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ 8 рдмрд┐рдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ Atmega328 рдбреЗрдЯрд╛рд╢реАрдЯ рд╕реЗ рд╡рд┐рд╡рд░рдг рд╣реИрдВ:
TCCR1B рдореЗрдВ рдЕрдВрддрд┐рдо рддреАрди рдмрд┐рдЯреНрд╕ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ: CS12, CS11 рдФрд░ CS10ред рд╡реЗ рдЯрд╛рдЗрдорд░ рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рдЪреБрдирдирд╛, рдЖрдк рдЯрд╛рдЗрдорд░ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрддрд┐ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдЯрд╛рд╢реАрдЯ рдЯреЗрдмрд▓ рд╣реИ рдЬреЛ рдЪреБрдирд┐рдВрджрд╛ рдмрд┐рдЯреНрд╕ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпреЗ рд╕рднреА рдмрд┐рдЯреНрд╕ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИрдВред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдорд░ 1 рдкреНрд░рддрд┐ рдЕрд╡рдзрд┐ рдПрдХ рдирдореВрдирд╛ рдХреЗ рд╕рд╛рде рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЪрд▓реЗред рдЬрдм рдпрд╣ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрдВрдЯрд░рдкреНрдЯ рд░реВрдЯреАрди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд▓реЗрдЧ 13 рд╕реЗ рдЬреБрдбрд╝реЗ рдПрд▓рдИрдбреА рдХреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо Arduino рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо avr-libc рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрдм рднреА рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рд╢реБрджреНрдз AVR рдХреЗ рд╕рдорд░реНрдердХ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЯрд╛рдЗрдорд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ:
TIMSK1 рд░рдЬрд┐рд╕реНрдЯрд░ рдПрдХ рдЯрд╛рдЗрдорд░ / рдХрд╛рдЙрдВрдЯрд░ 1 рдЗрдВрдЯрд░рдкреНрдЯ рдорд╛рд╕реНрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИред рдпрд╣ рдЙрд╕ рдмрд╛рдзрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЯрд╛рдЗрдорд░ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред TOIE1 рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЯрд╛рдЗрдорд░ рдХреЛ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рдкрд░ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдЗрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
рдЬрдм рдЖрдк CS10 рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдорд░ рдХреА рдЧрд┐рдирддреА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЬреИрд╕реЗ рд╣реА рдПрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, ISR (TIMER1_OVF_vect) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЯрд╛рдЗрдорд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛ рд╣рдо ISR рдЗрдВрдЯрд░рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
ISR(TIMER1_OVF_vect) { digitalWrite(LEDPIN, !digitalRead(LEDPIN)); }
рдЕрдм рд╣рдо рд▓реВрдк () рдЪрдХреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрд▓рдИрдбреА рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛред рдЯрд╛рдЗрдорд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рд╕рдордп TCCR1B = 0 рд╕реЗрдЯ рдХрд░реЗрдВред
рдПрд▓рдИрдбреА рдХрд┐рддрдиреА рдмрд╛рд░ рдЭрдкрдХреЗрдЧреА?
Timer1 рдХреЛ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк Atmega328 рдХрд╛ рдЙрдкрдпреЛрдЧ 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдорд░ 16-рдмрд┐рдЯ рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХрддрдо рдорд╛рди (2 ^ 16 - 1), рдпрд╛ 65535 рддрдХ рдЧрд┐рди рд╕рдХрддрд╛ рд╣реИред 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░, рдЪрдХреНрд░ 1 / (16 ^ 10 ^ 6) рд╕реЗрдХрдВрдб рдпрд╛ 6.25e-8 рдЪрд▓рд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ 65535 рдирдореВрдиреЗ (65535 e 6.25e-8 s) рдореЗрдВ рд╣реЛрдВрдЧреЗ рдФрд░ ISR рд▓рдЧрднрдЧ 0.0041 s рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдордп рдХреЗ рдмрд╛рдж, рд╣рд░ рд╕реЗрдХрдВрдб рдХреЗ рдЪрд╛рд░ рд╣рдЬрд╛рд░рд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВред рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рддреЗрдЬ рд╣реИред
рдпрджрд┐ рд╣рдо рдПрд▓рдИрдбреА рдореЗрдВ 50% рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рддреЗрдЬ рдкреАрдбрдмреНрд▓реВрдПрдо рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрдордХ рдирд┐рд░рдВрддрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХрдо рдЙрдЬреНрдЬреНрд╡рд▓ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреНрд░рдпреЛрдЧ рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреА рдЕрджреНрднреБрдд рд╢рдХреНрддрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд╕реНрддреА 8-рдмрд┐рдЯ рдЪрд┐рдк рд╕реВрдЪрдирд╛ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЯрд╛рдЗрдорд░ рд╡рд┐рднрдХреНрдд рдФрд░ рд╕реАрдЯреАрд╕реА рдореЛрдб
рдЕрд╡рдзрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡рд┐рднрдХреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЯрд╛рдЗрдорд░ рдЕрд╡рдзрд┐ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдПрд▓рдИрдбреА рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдлреНрд▓реИрд╢ рдХрд░реЗред TCCR1B рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рддреАрди рд╕реАрдПрд╕ рдмрд┐рдЯреНрд╕ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк CS10 рдФрд░ CS12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
TCCR1B |= (1 << CS10); TCCR1B |= (1 << CS12);
рдлрд┐рд░ рдШрдбрд╝реА рд╕реНрд░реЛрдд рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ 1024 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ 1 / (16 ^ 10 ^ 6/1024) рдпрд╛ 6.4e-5 s рдХрд╛ рдПрдХ рдЯрд╛рдЗрдорд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рджреЗрддрд╛ рд╣реИред рдЕрдм рдЯрд╛рдЗрдорд░ рд╣рд░ (65535-6.4e-5s) рдпрд╛ 4.194 рдХреЗ рд▓рд┐рдП рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ AVR рдЯрд╛рдЗрдорд░ рдореЛрдб рд╣реИред рдЗрд╕реЗ рд╕рдВрдпреЛрдЧ рдЯрд╛рдЗрдорд░ рд░реАрд╕реЗрдЯ рдпрд╛ CTC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдУрд╡рд░рдлреНрд▓реЛ рдХреА рдЧрд┐рдирддреА рдХреЗ рдмрдЬрд╛рдп, рдЯрд╛рдЗрдорд░ рдЕрдкрдиреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдЙрд╕ рдЪрд░ рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдЧрд┐рдирддреА рдЗрд╕ рдЪрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЯрд╛рдЗрдорд░ рдпрд╛ рддреЛ рдПрдХ рдЭрдВрдбрд╛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдмрд╛рдзрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдПрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред
рд╕реАрдЯреАрд╕реА рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреЗ рдЪрдХреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдЕрдиреБрдкрд╛рдд рдЕрднреА рднреА 1024 рд╣реИред
рдЧрдгрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:
(target time) = (timer resolution) * (# timer counts + 1) (# timer counts + 1) = (target time) / (timer resolution) (# timer counts + 1) = (1 s) / (6.4e-5 s) (# timer counts + 1) = 15625 (# timer counts) = 15625 - 1 = 15624
рдЖрдкрдХреЛ рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдХрд╛рдИ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ CTC рдореЛрдб рдореЗрдВ, рдЬрдм рдХрд╛рдЙрдВрдЯрд░ рд╕реЗрдЯ рдореВрд▓реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдпрдВ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ред рд░реАрд╕реЗрдЯ рдПрдХ рдШрдбрд╝реА рдХреА рдЕрд╡рдзрд┐ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧрдгрдирд╛ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдЕрд╡рдзрд┐ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ-рд╕рдЯреАрдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕реЗрдЯрдЕрдк () рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
void setup() { pinMode(LEDPIN, OUTPUT);
рдЖрдкрдХреЛ рд╕рдВрдпреЛрдЧ рдмрд╛рдзрд╛ рдХреЗ рд╕рд╛рде рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдмрд╛рдзрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
ISR(TIMER1_COMPA_vect) { digitalWrite(LEDPIN, !digitalRead(LEDPIN)); }
рдЕрдм рдПрд▓рдИрдбреА рдареАрдХ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЖрдк рдПрдХ рд▓реВрдк () рд▓реВрдк рдореЗрдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдЖрдк рдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡реНрдпрд╡рдзрд╛рди рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рднрдХреНрдд рдореЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореЛрдб рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред
рдпрд╣рд╛рдВ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЯрд╛рдЗрдорд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд ISR рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╕реЗрдВрд╕рд░ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рдмрд┐рдирд╛ рдЗрддрдиреА рд▓рдВрдмреА рдЧрд┐рдирддреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк ISR рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдПрдХ рдмрд╛рд░ рдЧрд┐рдирддреА рдЪрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрдм рд╕реЗрдВрд╕рд░ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЪрд░ 10 рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ STS рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд░реБрдХрд╛рд╡рдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
ISR(TIMER1_COMPA_vect) { seconds++; if(seconds == 10) { seconds = 0; readSensor(); } }
рдЪреВрдБрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЛ ISR рдХреЗ рдЕрдВрджрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:
volatile byte seconds;
рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдмрд╛рдж
рдПрдХ рд╕рдордп, рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдпрд╛ рдЬрдм рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реБрдЖред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред