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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХреЛрдб рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреЛрдб рдХреЛ
рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдлрдкреАрдПрд▓ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред
рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдИрдерд░рдиреЗрдЯ рдореЙрдбреНрдпреВрд▓ ENC28J60 рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд▓рд┐рдП,
рд▓рд╛рдЗрдлрд╝реЗрд▓рдУрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдзрдиреНрдпрд╡рд╛рджред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рддрдХ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдлрд┐рд░ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реЛрдЧреАред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдлрд┐рд▓рд╣рд╛рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрднреА рддрдХ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдмрд╣реБрдд рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ рдмреЛрд░реНрдбреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдХреБрдЫ рдЙрдкрднреЛрдЧреНрдп рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдЦрд░реАрдж рдореЗрдВ рдЕрдкреНрд░рд┐рдп рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛)ред
рдкреНрд░рджрд░реНрд╢рди рдореЙрдбреНрдпреВрд▓ рддреИрдпрд╛рд░ рд╣реИрдВ (3 рдХрд╛ 2), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрд▓рдИрдбреА-рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЗрдХрдЯреНрдареЗ "рдкреБрд╕реНрддрдХрд╛рд▓рдп"ред
рдЬрдмрдХрд┐ рджреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рд╣реИ (рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдЦрдмреНрд░реЛрд╡рд╕реНрдХ рдирд╛рдЧрд░рд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдмреЗрд╣рддрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ - рдореИрдВ рдЦреБрдж UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ)ред
рдХреЛрдИ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА - рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА: рдмрд╣реБрдд рд╕рд╛рд░реА рддрд╕реНрд╡реАрд░реЗрдВред
рдлрд┐рд▓рд╣рд╛рд▓, рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рд╣реА рдХрд╛рд░рдЧрд░ рд╣реИред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХреЗрдд (125Hz рдХреЗ рдЖрджреЗрд╢ рдХреА рддрд╛рдЬрд╝рд╛ рджрд░)ред рдореЙрдбреНрдпреВрд▓ рдХреЛ
ATmega48 рдХрдВрдЯреНрд░реЛрд▓рд░ (рдореЗрдЯреЗрдХ -
ATmega1284p рдкрд░ ) рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ 12 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдФрд░ 3.3V рдкрд╛рд╡рд░ (рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдХрд╛рд░реНрдб рдФрд░ рдИрдерд░рдиреЗрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП) рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреЗрдд рдореЙрдбреНрдпреВрд▓ рдХреА рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ - 5V 0 ~ 2.2A / рдореЙрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреН, рд╕реНрдХреНрд░реАрди рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ 10W рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХред
рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШрдбрд╝реА / рдХреИрд▓реЗрдВрдбрд░ рдореЛрдб), рдбрд┐рд╡рд╛рдЗрд╕ рдХрдо рд╕реЗ рдХрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХрд░реЗрдЧрд╛ред
рдлрд┐рд▓рд╣рд╛рд▓, рдкреЛрд╖рдг рдХрд╛ рдореБрджреНрджрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ:
48 рд╡реА (рдкреАрдУрдИ) -> 5 рд╡реА (рдлреНрд▓рд╛рдИ-рдмреИрдХ) -> 3.3 рд╡реА (рдПрд▓рдбреАрдУ)ред
рдЧрдгрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 3.3V рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рд╕рд░реНрдХрд┐рдЯ рдХреЛ 0.5A рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрддрдорд╛рди (рдИрдерд░рдиреЗрдЯ рдореЙрдбреНрдпреВрд▓ (~ 150-250mA) рдФрд░ 2 рдирд┐рдпрдВрддреНрд░рдХреЛрдВ (рд╢рд╛рдпрдж рд╣реА 20mA рд╕реЗ рдЕрдзрд┐рдХ), рдПрд╕рдбреА рдХрд╛рд░реНрдб (рдорд╛рдк рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣реА рдХрднреА 50mA рд╕реЗ рдЕрдзрд┐рдХ), рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдШрдбрд╝реА рдХрд╛ рд╕рдВрдпреБрдХреНрдд рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (DS1307), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдж рдХреЗ рдореИрдВ рдкрд╛рд╡рд░ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 5V рд╕реЗ рдмрд┐рдЬрд▓реА рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ)ред
рдЕрдм рдкрд╣рдЪрд╛рди рдХреЗ рджреЛ рдореЙрдбреНрдпреВрд▓ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдПрдХ рд╣реА рдлреЛрдЯреЛ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХреНрд░реЙрдкрд┐рдВрдЧ рдХреЗред рдиреАрдЪреЗ рдлреЛрдЯреЛ
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
рджреЛ рдкреНрд░рджрд░реНрд╢рди рдореЙрдбреНрдпреВрд▓ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред
рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреБрдЫ рд╣рдж рддрдХ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЧрдИ рдереАред рдЕрдм рдЗрд╕рдореЗрдВ рджреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдорд╛рд╕реНрдЯрд░ (ATMefa1284p) рдФрд░ рдЧреБрд▓рд╛рдо (ATMega48)ред рд╕реАрдкреАрдпреВ рдмреЛрд░реНрдб рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдзрд┐ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрдпрдирд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ рдФрд░ рдореИрдВ рдХрдИ рдмрд╛рд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ)ред рдЕрдм рдзреНрд╡рдирд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рд╡рд╛рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рд╕реАрдзреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдСрдбрд┐рдпреЛ (8 рдмрд┐рдЯ, 22kHz) рдЦреЗрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ? рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдСрдбрд┐рдпреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЖрдХрд░реНрд╖рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА (рд╕рдВрднрд╡рддрдГ рдЙрдиреНрд╣реЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕реАрдзреЗ рдХрд╛рд░реНрдб рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛)ред рд╢рд╛рдпрдж рдореИрдВ рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ред
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд░реНрдерди, рдзреНрд╡рдирд┐ (рд╕рдВрднрд╡рддрдГ), рд╕рд╛рде рд╣реА рд╕рд╛рде (рд╕рдВрднрд╡рддрдГ) рд╕рд░рд▓ рдЯреЗрд▓рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред
рдмрд╛рдж рдореЗрдВ рдореИрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЕрдкрдбреЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ (рдпрджрд┐ рд╣рд╛рдереЛрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддреНрдпрдХреНрд╖рддрд╛ рд╣реИ), рдпрд╛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ (рдмрд▓реНрдХрд┐, рдПрд╕рдкреАрдЖрдИ рдореЛрдб рдореЗрдВ рдпреВрдПрд╕рдбреА)ред рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рде рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреЗред
рдереЛрдбрд╝рд╛ рдкрд╣рд▓реЗ рд╕рдВрдХреЗрддрдХ рдмреЛрд░реНрдб
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рд╣реИред
рдЙрдирдореЗрдВ рд╕реЗ 3 рд╣реЛрдВрдЧреЗред
рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдмреЛрд░реНрдб рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИ ... рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рдордВрдЬреВрд░реА рдирд╣реАрдВ рдорд┐рд▓рддреАред рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдлреЛрдЯреЛрд░рд┐рд╕реНрдЯ рдХреЛ рдзреЛрдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреА рдлреЛрдЯреЛ: (рдЕрдм рдкреЛрдЬреАрдЯрд┐рд╡ 20)ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдЕрднреА рддрдХ рдореБрдЭреЗ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИред
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдЬреЛ рдЕрдм рддрдХ рдХреА рдЧрдИ рд╣реИ ... рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рднреА рд╣реИред рдзрд╛рд░рд┐рдпрд╛рдБ рдФрд░ рдЕрд╕рдорд╛рди рдкреНрд░рддрд┐рд░реЛрдз рдкрд░рдд рдиреЗ рдЙрдирдХрд╛ рдХрдкрдЯреА рд╡реНрдпрд╡рд╕рд╛рдп рдХрд┐рдпрд╛ред
рдЕрдзрд┐рдХ рдмрд╛рд░ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:

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

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВред
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред (рдЕрдкреНрд░рдЪрд▓рд┐рдд)
рдЕрдкрдбреЗрдЯ 2014-05-11 : рдкреНрд░рджрд░реНрд╢рди рдХреЗ "рдбреНрд░рд╛рдЗрд╡рд░" рдХреЛ рд╣рд░рд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛, "рд╕реНрдХреНрд░реАрди" рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрди рдХрд╛ рдирд░рдо рд╕реНрдХреНрд░реЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
рдЖрдЬ рдЖрдк
рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯреА рдЬреАрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд╡реАрд╕реА рд╕реЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рддрдХ рд╡реАрдбрд┐рдпреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рдЬрдЧрд╣ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭрд╕реЗ рдХрд╣рддрд╛ рд╣реИ - рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
рдПрдХ рджреВрд╕рд░рд╛ рд╕рдВрдХреЗрддрдХ рдмреЛрд░реНрдб рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ - рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕реНрд╡рдпрдВ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИредрдХреЛрдб ... рдЬрдм рддрдХ рдпрд╣ рдЖрд▓реЛрдЪрдирд╛ рдЧреНрд░рд╕реНрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдХреНрд░реАрди рдЖрдпрд╛рдо рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди (рдЙрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
RAM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рд╕реЗ рдХрдо рд╣реИред рдХреЗрд╡рд▓ рдкрд╛рда рдХреЗ рдмрдлрд░ рдХреЗ рдиреАрдЪреЗ (рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рд▓реЗрдХрд┐рди 1 рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП), рдФрд░ рдХреБрдЫ рдкреЗрдиреЗрдореИрдЯрд┐рдХред рдпрд╣ 512 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЙрдкрд▓рдмреНрдз рд░реИрдо рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред
рдЕрджреНрдпрддрди 2014-06-02 : рджреЛ рд╕рдВрдХреЗрддрдХ рддреИрдпрд╛рд░ рд╣реИрдВ, рдХреЛрдб рдХреЛ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдореЗрдВ рд╕рдВрдХреЗрддрдХ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрджрд▓реЗрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдлреЛрдЯреЛ рдЬреНрдпрд╛рджрд╛ рдереАред
рдирд┐рдпрдВрддреНрд░рдг рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рджреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рд▓рд╛рдЗрди рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред 48 рд╡реЗрдВ рдореЗрдЧрд╛ рдкрд░ рдХреЛрдИ JTAG рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдореИрдВ рдирд┐рдпрдВрддреНрд░рдХ рдмреЛрд░реНрдб рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдХреАрдбрд╝реЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред
рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ "рдкрдбрд╝реЛрд╕реА" рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ (рдЗрд╕ рддрдереНрдп рд╕реЗ рдХрд┐ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА / рдПрд╕рдкреАрдЖрдИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмреВрдЯрд▓реЛрдбрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛)ред рдЕрдм рдореИрдВ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдорд╛рдирдХ ISP рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд▓реЗрд╡ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ (рдореБрдЭреЗ рджреЛрдиреЛрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рд╕рд╛рде рд╣реА рдЬрдВрдкрд░реНрд╕ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдорд╛рд╕реНрдЯрд░ "рд╕реНрдХреНрд░реАрди рдбреНрд░рд╛рдЗрд╡рд░" рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗред
рдПрд╕рдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреЗрддрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЯрд┐рдк рдХреЗ рд▓рд┐рдП
рдЕрд▓реЗрдХреНрд╕рдИрд╕реНрд▓рд╛рд╡ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЧрд▓рддреА рд╕реЗ рднреВрд▓ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ "рд▓реЗрдЧ-рдЬрдВрдк" рдХреА рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред
\\ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИред
\\ рдЬрдм рдореИрдВ рдПрдХ рдирдП рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ - рдореИрдВ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдПрдХ рднреВрдЦрдВрдб рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдХреЛрдб рдХрд╛ рдПрдХ рдмрд┐рдЯ:
led.h // : (3*9)*8 // 27*8 = 216 . #define MATRIX_COUNT 16 // #define ARRAY_SIZE MATRIX_COUNT * 8 // . #define VisibleChars ARRAY_SIZE / 6 #define LED_MODE_OFF 0 #define LED_MODE_TXT_SCROLL 1 #define LED_MODE_TXT_NO_SCROLL 2 #define LED_MODE_IMG 3 #define LED_MODE_MAX LED_MODE_IMG void LED_Reset(void); // . , . void LED_PushBits(unsigned char DataByte, unsigned char Bits); // . void LED_FirstLine(void); // . void LED_NextLine(void); // ( ) void LED_Sync(void); // "" - , "Latch" . "". //char HEX(unsigned char dataNibble); // // HEX ( [0..15], ). void LED_DrawChar(uint8_t CharN, uint8_t LineNum, uint8_t ShowCols); // . . (, , ) void LED_DrawString(void); // . 1ms (1000/8 = 125Hz), , 2 (500/8 = 62.5Hz) //void LED_NewString(alarm_packet_t *data); // . , , , . void LED_DrawImg(void); // . , . . // , 8 ( , ). void LED_Poll(void); // , "", . // , , . // . // - .
led.c #include "led.h" //#define TextScrollMS 50 uint8_t DataArray[ARRAY_SIZE]; // . uint8_t CurrMode; // : {0=, 1= , 2= , 3=} uint8_t CurrLength; // ( ). uint8_t CurrLine; // int16_t CurrSkipChars; // // 127 ( 128-), ... int16. uint8_t CurrColSkip; // ( ) volatile uint8_t TextScrollDelayMS; volatile uint16_t LastMS; void LED_SetMode(uint8_t NewMode) { if (NewMode <= LED_MODE_MAX) { CurrMode = NewMode; } else { CurrMode = LED_MODE_OFF; }; }; void LED_Poll(void){ if (CurrMode == LED_MODE_OFF) { return; }; if (CurrMode == LED_MODE_TXT_SCROLL) { LED_DrawString(); }; if (CurrMode == LED_MODE_TXT_NO_SCROLL) { LED_DrawString(); }; if (CurrMode == LED_MODE_IMG) { LED_DrawImg(); }; }; void LED_Reset(void) { char t; CurrLine = 0; CurrSkipChars = -VisibleChars; LED_PORT |= (1<<LED_OE); // Z- LED_PORT |= (1<<LED_DATA_V); // . for (t=0;t<8;t++) { LED_PORT |= (1<<LED_C_V); // 0 LED_PORT &= ~(1<<LED_C_V); // , . }; LED_PORT &= ~(1<<LED_OE); // Z- .. }; void LED_PushBits(unsigned char DataByte, unsigned char Bits) { while (Bits > 0) // { Bits--; // 1 if (DataByte & 0x80) // = 1 ( ) { LED_PORT |= (1<<LED_DATA_H); // "Data" } else { LED_PORT &= ~(1<<LED_DATA_H); // - }; LED_PORT |= (1<<LED_C_H); // LED_PORT &= ~(1<<LED_C_H); // 1 . DataByte <<= 1; // 1. }; // , . }; void LED_FirstLine(void) { LED_PORT &= ~(1<<LED_DATA_V); // LED_PORT |= (1<<LED_C_V); // LED_PORT &= ~(1<<LED_C_V); // . LED_PORT |= (1<<LED_DATA_V); // // LED_Sync(); // }; void LED_NextLine(void) { LED_PORT |= (1<<LED_C_V); // LED_PORT &= ~(1<<LED_C_V); // . CurrLine++; // CurrLine &= 0x07; // 7 // , if (CurrLine==0) { LED_FirstLine(); // , , if (((ticks_count - LastMS) > TextScrollDelayMS)|(ticks_count < LastMS)) { LastMS = ticks_count; // if (CurrMode == LED_MODE_TXT_SCROLL) { CurrColSkip--; // 1 if (CurrColSkip == 255) // , .. { CurrColSkip = 5; // 5/6 ... CurrSkipChars++; // 1 . }; // if (CurrSkipChars > CurrLength) { // (- ) CurrSkipChars = -VisibleChars; }; } else { CurrColSkip = 0; CurrSkipChars = 0; }; }; }; }; void LED_Sync(void) { // LED_PORT |= (1<<LED_OE); // Z- LED_PORT |= (1<<LED_LATCH); // LED_PORT &= ~(1<<LED_LATCH); // . . LED_PORT &= ~(1<<LED_OE); // . . }; void LED_DrawChar(uint8_t CharN, uint8_t LineNum, /*uint8_t SkipCols,*/ uint8_t ShowCols) { unsigned char temp = 0; unsigned char cols; cols = ShowCols; // if (cols == 0) { return; }; if (CharN == 168) { // temp = pgm_read_byte(&CharsRu[65][LineNum]); }; if (CharN == 184) { // temp = pgm_read_byte(&CharsRu[66][LineNum]); }; if (CharN > 191) { // temp = pgm_read_byte(&CharsRu[CharN-192][LineNum]); }; if ((CharN > 32)&(CharN <= 126)) { // temp = pgm_read_byte(&Chars[CharN-32][LineNum]); }; // RAM. , +1 (, 1 .... , ). LED_PushBits(temp, cols); // }; void LED_DrawString(void) { int16_t First; // int16_t Last; // int16_t SymbolsSkip; // // , . uint8_t i; // "i" - 40 ! uint8_t EndedWithChar; // , ... . SymbolsSkip = CurrSkipChars-1; // while (SymbolsSkip < 0) { SymbolsSkip ++; // 0 LED_PushBits(0, 6); // ( ). }; // . // , . if (CurrSkipChars <= 0) // { First = -1; // . } else { First = CurrSkipChars-2; // - -2 // // . }; Last = First + CurrSkipChars + VisibleChars; // . // ( ) if (Last > First) { // , if (Last > CurrLength-1) { // . Last = CurrLength-1; // , . // , ( ) + - - 1 // -1 - , , . SymbolsSkip = VisibleChars + CurrSkipChars - Last - 1; }; if (SymbolsSkip > 0) { EndedWithChar = 0; } else { EndedWithChar = 1; }; // - , , . // 1 ... for (i = First+1; i < Last; i++) { // , . LED_DrawChar(DataArray[i], CurrLine, 6); }; // ... , . if (EndedWithChar) { LED_DrawChar(DataArray[Last], CurrLine, 6-CurrColSkip); } else { LED_DrawChar(DataArray[Last], CurrLine, 6); }; // .. if (SymbolsSkip > 0) { // // ,... for (i=1;i<SymbolsSkip;i++) { // ... . LED_PushBits(0, 6); }; // - - . LED_PushBits(0, 6-CurrColSkip); }; }; LED_Sync(); // . LED_NextLine(); // . }; void LED_DrawImg(void) { uint8_t i; // // - *8 ( ) // . for (i = CurrLine*MATRIX_COUNT; i<CurrLine*(MATRIX_COUNT+1); i++) { // ... , 8 . LED_PushBits(DataArray[i], 8); }; // , MATRIX_COUNT . // . LED_Sync(); // . LED_NextLine(); // . };