рдбреНрд░рд╛рдлреНрдЯ рджреБрд░реНрдШрдЯрдирд╛ рдЪреЗрддрд╛рд╡рдиреА рд╕реВрдЪрдирд╛ рдкреИрдирд▓ (рднрд╛рдЧ 2)

рд╕рднреА рдХрд╛ рдЕрднрд┐рд╡рд╛рджрдиред
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ , рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреИрдирд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдЬрд┐рд╕реЗ рдореИрдВ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реВрдВ (рдЬрд╣рд╛рдВ, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ, рдХреБрдЫ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдХрд╛рд░рдг - рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░реЗ рд╕рдмрдиреЗрдЯ рдЬрд┐рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЗрдВрдЯрд░рдиреЗрдЯ, рд▓реЗрдХрд┐рди рдЯреЗрд▓реАрдлреЛрдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрдЪрд╛рд▓рдирд╢реАрд▓рддрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, 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
/*   LED   AlarmPanel. */ // : (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 SkipCols,*/ 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(); //   . }; 

Source: https://habr.com/ru/post/In218859/


All Articles