
рдлрд╛рдпрд░рдкреНрд▓реЗрд╕ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬреЛ рдЕрд╕рд╛рдзрд╛рд░рдг рдЧрд░реНрдореА, рдЖрдкрдХреЗ рдШрд░ рдХреЗ рдЖрд░рд╛рдо, рдорд┐рдард╛рдИ, рдЙрдкрд╣рд╛рд░, рд╕рд░реНрджрд┐рдпреЛрдВ рдХреА рд╢рд╛рдо рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реБрдЦрдж рдЪреАрдЬ рд╣реИред рдЖрдЬ рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓реЗ рдореЗрдВ - рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдиреИрдиреЛрдЯреЗрдХреНрдиреЛрд▓реЙрдЬрд┐рдХрд▓ рдПрд▓ рдИ рдбреА рдФрд░ "рд╡рд╛рд░реНрдо рдЯреНрдпреВрдм" рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ - pic12f683, рд╣рд╛рдИ-рдЯреЗрдХ рдЖрдИрдбреАрдИ рдореЗрдВ рд╣рд╛рдИ-рдЯреЗрдХ PICC рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред
рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ рдирдП рдШрд░реЗрд▓реВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ рдерд╛ рдФрд░ рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪреАрдиреА рдиреЗ 12 рд╕реЗрдВрдЯреАрдореАрдЯрд░ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд▓рд╛рд▓ рдЪрдордХрд╛ рджрд┐рдпрд╛ рдерд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╣реБрдд рд╢реЛрд░, рд╢реВрдиреНрдп рд▓рд╛рдн рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╕рд┐рд░реНрдл рдПрдХ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдФрд░ рдШрд░ рдХреЗ рд╕рд╛рдорд╛рдиреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЬрдЧрд╣ рдкрд░ рдПрдХ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рднрд╛рд░реА рднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддреА рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдЪрд┐рдордиреА рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реБрдИред рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЕрд╡рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд┐рдордиреА рдХреЛ рднрдбрд╝рдХрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдзрди
Microcontrollerред pic12f683 рдЬрдмрдХрд┐ рд╣рдореЗрдВ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ 100+ рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ 30 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд╕реНрддрд╛ рдФрд░ рдПрдХ рд╕реМ рдЧреБрдирд╛ рдореЛрдЯрд╛ рд╣реИ, рд╣рдо рдкреБрд░рд╛рдиреЗ, рд╕рд┐рджреНрдз рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдмреИрдареЗрдВрдЧреЗред рдЖрда-рдлреБрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА, рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕ рдкрд░ рдмрд╕ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ "рдореИрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдерд╛", рд▓реЗрдХрд┐рди рдлрд╛рдпрд░рдкреНрд▓реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрд╡рдпрдВ
pic12f629 рдпрд╛
pic12f675 рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреЛ рдЯрд╛рдЗрдорд░реНрд╕ рдФрд░ рдПрдХ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдПрд▓ рдИ рдбреАред рдорд╛рдорд▓реЗ рдХреА рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЪрдордХ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рджрд╣рди рдкреНрд░рднрд╛рд╡ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╣реИрдВред рдореИрдВрдиреЗ 1-рдХреИрдВрдбреЗрд▓рд╛ рд╡рд╛рд▓реЗ рдХреЛ рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рд╢рдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдпрд╛, рд╡реЗ 20 рдПрдордП рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдирд┐рд╡рд╛рд░реНрдп рдЯрд┐рдкреНрдкрдгреА рдХрд┐ рдПрдордХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 100 рдПрдордП рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ)ред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдПрдордХреЗ ред рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рд╣рд╛рд░реНрд╕реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ, рд╢рд╛рдпрдж рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдиреЗ рдХрдВрдкрдиреА рд╣рд╛рдИ-рдЯреЗрдХ рдХреЗ рд▓рд┐рдП рдкреИрд╕рд╛ рд▓рд┐рдпрд╛ рдерд╛, рдЬреЛ рдЗрди рд╕рдорд╛рди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдФрд░ рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдиреЗ рдЕрдкрдиреЗ рдирдП рдЙрддреНрдкрд╛рджреЛрдВ - XC рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрдХрд▓рдХ рдХреЛ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рд╡рд╣реА рд╕рдВрдпреБрдХреНрдд рдкреБрд░рд╛рдиреЗ PICC рд╣реИрдВ,
рдПрдирдПрди рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреА рдмреЛрд▓рд┐рдпреЛрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рдЕрд░рд╛рдЬрдХ рдорд┐рд╢реНрдорд╢ рдХреЗ рд░реВрдк рдореЗрдВред рдХреЛрдИ рднреА рд▓рдВрдмреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рд╡реИрд╕реЗ рднреА рдирд╣реАрдВ рдкрдврд╝рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП -
рд╕реНрд╡реАрдЯреА ред рдЕрдм рддрдХ, рдорд╛рдирдХреАрдХрд░рдг рдХреА рднрд╛рд╡рдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдирд╕реЗ рдЕрдзрд┐рдХ рдЕрдкреНрд░рд┐рдп рдФрд░ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдЪреНрдЪреА рд╡реЗрдХреНрдЯрд░ред
рд╣рдо рдкреБрд░рд╛рдиреЗ рдФрд░ рдЕрднреА рднреА рдХрд╛рдлреА рд╕реБрдЦрдж рд╣рд╛рдИ-рдЯреЗрдХ PICC 9.60
рдПрд╕рдЯреАрдбреА рдкрд░ рдмрдиреЗ рд╣реБрдП рд╣реИрдВ ред рдЗрд╕ рджреБрд░реНрд▓рдн рд╡рд╕реНрддреБ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрдВрдкрдиреА рдХреЗ
рд╕рдВрдЧреНрд░рд╣ рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред
рдЖрдИрдбреАрдИред рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдореИрдВ рдПрдХ рд╣реА рд╣рд╛рдИ-рдЯреЗрдХ - рд╣рд╛рдИ-рдЯрд╛рдЗрдб рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдЖрдИрдбреАрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВред рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдРрдб-рдСрди рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдп-рдЯрд╛рдЗрдб рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕реНрдерд╛рдкрдирд╛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдЪреЗрдХрдмреЙрдХреНрд╕) рдпрд╛, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 3.15 рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк
3.13 рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХреБрдЫ рд╕рдордЭреМрддреЗ
рдпрд╣рд╛рдБ рдмрдирд╛рдИ рдЧрдИ рдЪрд┐рдордиреА рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдХреБрдЫ рдирдореВрдиреЗ рд╣реИрдВ:
1. рджреЛрдиреЛрдВ рдПрд▓ рдИ рдбреА рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рд▓реМ рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдирдХрд╛ рд╕рдВрдпреБрдХреНрдд рдХрд╛рд░реНрдп рдкреНрд░рдХрд╛рд╢ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реМ рдХреЗ рдХрд░реАрдм рджреЗрддрд╛ рд╣реИред
2. рд╣рдо рд▓реМ рдкреНрд░рднрд╛рд╡ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рддреАрди рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ -
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреАрдбрдмреНрд▓реВрдПрдо 0 рд╕реЗ 255 рддрдХ рдЪрдордХ рдХреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЪрдордХ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП,
рдлреНрд░реЗрдо - рдЪрдордХ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрдордХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдФрд░
рдЪрдордХ рдХреА рдХреБрд▓ рдЪрдордХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдЗрди рдЪрдордХ рдХреА
рд╕реАрдорд╛ ред рдореБрдЭреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рддреМрд░ рдкрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдирд┐рдЪрд▓реА рд╕реАрдорд╛ реж рд╕реЗ релреж рдФрд░ рдКрдкрд░реА рдПрдХ - рейреж рд╕реЗ реирелрел рддрдХ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред
3. рдЪрдордХ рдХреА рдХреБрд▓ рдЪрдордХ 0 рд╕реЗ 255 рддрдХ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдЕрд╡рдзрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдлреНрд░реЗрдо рд╢реВрдиреНрдп рдЯрд╛рдЗрдорд░ рдкрд░ "рд▓рдЯрдХрд╛" рд╣реЛрдЧрд╛, рддреЛ рд╕рдордЧреНрд░ рдЪрдордХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рддрдВрддреНрд░ рдкрд╣рд▓реЗ рдкрд░ рд╣реИ рдФрд░ рдЗрдирдкреБрдЯ рдкрд░ рд░рд╛рдЬреНрдп рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рд░реБрдХрд╛рд╡рдЯ рд╣реИред
4. рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреАрдбрдмреНрд▓реНрдпреВрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЙрдЪреНрдЪ рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдореИрдВрдиреЗ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ 20 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд▓рд┐рдпрд╛ред
5. рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдХреЙрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реАрдзреЗ рдорд╛рдорд▓реЗ рдкрд░ рдПрд▓рдИрдбреА рдХреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдкрд░реНрдХ рд╕реЗ рд▓реА рдЬрд╛рдПрдЧреАред рдПрд▓рдИрдбреА рдкрд░ рдХреЗрд╡рд▓ рджреЛ рд░рд╛рдЬреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╛ рддреЛ рдЬрдореАрди рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ +5 рд╡реЛрд▓реНрдЯ рддрдХред рдорд╛рдорд▓реЛрдВ рдХреА рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЗрдирдкреБрдЯ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрдбрд░реНрд╕ рдФрд░ рдЕрдиреНрдп рдЙрдк-рдкрд░рд┐рдкрдереЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
рд▓реЛрд╣рд╛
рдбрд┐рд╡рд╛рдЗрд╕ рдЖрд░реЗрдЦ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рднрд╛рдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдиреНрдпреВрдирддрдо рд╣реИ, рдЙрдирдХрд╛ рдЪрдпрди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдЗрд╕ рд╕реЗ рднреА рдУрдорд┐рдд:

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:

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

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдореИрдВ рд╣рд╛рдИ-рдЯрд╛рдЗрдб рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░
рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ
рдХреЛ рднрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдлрд┐рд░ рд╕реЗ
рд▓рд┐рдЦрдирд╛ ред
FUSE-s рдиреЗ рд╡реЙрдЪрдбреЙрдЧ-рдЯрд╛рдЗрдорд░ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ред
__CONFIG(HS & WDTDIS & PWRTDIS & MCLREN & UNPROTECT & UNPROTECT & BORDIS & IESODIS & FCMDIS);
рдкрд░рд┐рдзреАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
void initHardware(void) {
683 рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ, рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рдЖрдИ / рдУ рдкреЛрд░реНрдЯ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд┐рдиреЛрдВ рдкрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЬреАрдкреАрдЖрдИрдУ рдкреЛрд░реНрдЯ рдХреЗ рдкреВрд░реЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрдЪреНрдЪ, рдирд┐рдореНрди рд╕реНрддрд░ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
volatile uint8 fIoBuffer; void setIoPinHigh(uint8 aPinNumber) { fIoBuffer |= (1 << aPinNumber); } void setIoPinLow(uint8 aPinNumber) { fIoBuffer &= ~ (1 << aPinNumber); } void updateIoBuffer(void) { GPIO = GPIO & 0b11111100 | fIoBuffer; }
рд░реИрдВрдбрдорд╛рдЗрдЬрд╝рд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдЬрдирд░реЗрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:
volatile uint32 fRandomSeed; void srand(void) { fRandomSeed = TMR0 ^ TMR1H ^ TMR1L; } uint8 randomByte(void) { fRandomSeed = fRandomSeed * 1103515245L + 12345; return fRandomSeed >> 16; }
рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдХреЗ рдПрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдШрдЯрдирд╛ рдкрд░, рджреЛ рджрд┐рдирдЪрд░реНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдПрд▓ рдИ рдбреА рдХреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЪрдордХ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреАрдбрдмреНрд▓реВрдПрдо рд╣реИред рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ: рдХрд╛рдЙрдВрдЯрд░ рд╣рдореЗрд╢рд╛ рдмрдврд╝рд╛ рд╣реБрдЖ рд╣реЛрддрд╛ рд╣реИ; рдпрджрд┐ рдпрд╣ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЪрдордХ (fPwmLedValue1 рдпрд╛ fPwmLedValue2) 0 рд╕реЗ 255 рддрдХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдХрд╛рдЙрдВрдЯрд░ рдЗрд╕ рдорд╛рди рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рд╣реИ, рдпрджрд┐ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдирд╣реАрдВред рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╣реЛрдЧреА, рдХрдо рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдПрд▓рдИрдбреА рдХреА рдЪрдВрдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реА рдЖрдВрдЦреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЪрдордХ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдореЗрдВ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рддреА рд╣реИред
fPwmLedCounter1++; fPwmLedCounter2++; if(fPwmLedValue1 > fPwmLedCounter1) setIoPinHigh(PIN_LED1); else setIoPinLow(PIN_LED1); if(fPwmLedValue2 > fPwmLedCounter2) setIoPinHigh(PIN_LED2); else setIoPinLow(PIN_LED2); updateIoBuffer();
рджреВрд╕рд░реА рдХреНрд░рд┐рдпрд╛ рд╣реИ рдлреНрд░реЗрдоред рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ 0.3 рд╕реЗрдХрдВрдб рдХреА рдПрдХ рдлреНрд░реЗрдо рд▓рдВрдмрд╛рдИ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐,
рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 2930 рд╢реВрдиреНрдп рдЯрд╛рдЗрдорд░ рдУрд╡рд░рдлреНрд▓реЛ рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдкреНрд░рддреНрдпреЗрдХ рдПрд▓ рдИ рдбреА рдХреА рдирдИ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЪрдордХ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рд╕реЗрдЯ рд╕реАрдорд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ fPwmHi рдФрд░ fPwmLo) рдФрд░, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдмреВрд▓рд┐рдпрди fCanIncrement рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╛рдпрд░рдкреНрд▓реЗрд╕ рдХреА рд╕рдордЧреНрд░ рдЪрдордХ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ:
uint8 randPwmValue(void) { return fPwmLo + randomByte() % (fPwmHi - fPwmLo); }
fFrameCounter++; if(fFrameCounter >= FRAME_DELAY) { fPwmLedValue1 = randPwmValue(); fPwmLedValue2 = randPwmValue(); if(!fCanIncrement) decBrightness(); fFrameCounter = 0; }
рдЬрдм рдЗрдирдкреБрдЯ рд╕реНрдерд┐рддрд┐ рдЙрдЪреНрдЪ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдЧ рдХреА рдХреБрд▓ рдЪрдордХ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЪрдордХ рдХреА рд╕реАрдорд╛рдПрдВ рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реЛрдЧреА, рдФрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдЪрдордХ рдХреА рд╡реГрджреНрдзрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬред рд╕реАрдорд╛рдУрдВ рдХреА рдкреБрдирд░реНрдЧрдгрдирд╛ рд░реИрдЦрд┐рдХ рдХрд╛рдиреВрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддреА рд╣реИ:
void calcEdges(void) { fPwmLo = (uint8)(0.1953125 * (float)fBrightness); fPwmHi = (uint8)(0.8828125 * (float)fBrightness + 30); } void incBrightness(void) { if(fBrightness < 255) { fBrightness++; calcEdges(); } }
if(GPIO & 0b00000100) { fCanIncrement = 1; incBrightness(); TMR1H = 0; TMR1L = 0; } else fCanIncrement = 0;
рдкрд░рд┐рдгрд╛рдо
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреЛрдЬрдирд╛ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░
рдорд╛рдЗрдХреНрд░реЛрд╡реЗрд╡ рдкрд░ рд╢реВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реАрдбрд┐рдпреЛ рдХрд╛рдо рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЕрд╕рд▓реА рдХрд╛рдо рдЖрдкрдХреЛ "рдЖрдЧ" рдкрд░ рдмреИрдардХрд░ рдзреНрдпрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд░рд╛рдд рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рд╣реИ, рджреЛрдкрд╣рд░ рдореЗрдВ,
рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ :
рд╕реНрд░реЛрдд рдФрд░ рдпреЛрдЬрдирд╛рдПрдБ
рдЬреАрдердм рдкрд░ рд╣реИрдВред