рдкреЗрд╢ рд╣реИ MSP430 рдФрд░ рдЯреЙрдпрд▓реЗрдЯ рдСрдЯреЛрдореЗрд╢рди

рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ DIY рдЕрдиреБрднрд╛рдЧ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдиреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд░реЛрдВрдЪ рдХрд┐рдпрд╛ред рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░ рдореИрдВрдиреЗ $ 4.30 рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ MSP430 рд▓реЙрдиреНрдЪ рдкреИрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╕реЗрдЯред
рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдмреНрд░рд╛рдВрдб рдХреЗ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдПрдпрд░ рдлреНрд░реЗрд╢рдирд░ рдХреЛ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред


рдХрд╛рд░реНрдп


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

рдЖрдк рдХреНрдпрд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд╛рд░реНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЕрдзрд┐рдХ рдмреБрджреНрдзрд┐рдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрд░реНрдерд╛рддреН, рд╢реМрдЪрд╛рд▓рдп рдХрд╛ рджреМрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлреНрд░реЗрд╢рдирд░ рдХрд╛ рдХрд╛рдо рдХрд░рдирд╛ред рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдорд╛рдорд▓реЗ рдХреЛ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ "рдореИрдиреБрдЕрд▓" рдСрдкрд░реЗрд╢рди рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝реЗрдВред

рдирд┐рд░реНрдгрдп


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рдореИрдВрдиреЗ рдкреНрд░рдХрд╛рд╢ рд╕рдВрд╡реЗрджрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕реНрдкреНрд░реЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣реА рд╣реИ, рдЬрдм 5 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдкреНрд░рдХрд╛рд╢ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдкреНрд░реЗрдпрд░ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, 15 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдЬрд╡рд╛рдм рди рджреЗрдВред рдХрдорд░реЗ рдХреЛ "рддрд╛рдЬрд╝рд╛" рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рд╕рд╛рдВрд╕ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рди рд╣реЛред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ "рдореИрдиреБрдЕрд▓" рдЫрд┐рдбрд╝рдХрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рднреА рдЬреЛрдбрд╝реЗрдВред

"рд░реЛрдЧреА" рдХреА рд╢рд╡ рдкрд░реАрдХреНрд╖рд╛

рдХреБрдЫ рднреА рдирдпрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ "рдЪрдорддреНрдХрд╛рд░ рдХреБрд▓" рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдерд╛ред


рдФрд░ рдЗрд╕рдХреЗ рдкрд╛рд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ "рддреНрд░рд┐рдХреЛрдгреАрдп" рд╕рд┐рд░ рдХреЗ рд╕рд╛рде рдереА:


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


рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд┐рд╕реНрд╕рд╛

рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рдХреНрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╕реНрддрд┐рд╖реНрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ MSP430G2553 рд╣реЛрдЧрд╛ред рд▓реЙрдиреНрдЪрдкреИрдб рдХрд┐рдЯ рдореЗрдВ рдПрдХ рдпреБрд╡рд╛ рдореЙрдбрд▓ G2452 рднреА рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ UART рд╣реИ, рдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА рд╕рд┐рд▓реЗрдВрдбрд░ рд╕рдВрдХреЗрддрдХред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рддрдиреЗ рд╕реНрдкреНрд░реЗ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдбреАрдмрдЧ рдмреЛрд░реНрдб рдкрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛)ред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдХ рдпреБрд╡рд╛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреА рдпреЛрдЬрдирд╛ред рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рддреИрдпрд╛рд░ рдЙрдкрдХрд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдмреЛрд░реНрдб рджреЛрдиреЛрдВ рдЧреБрдгрд╡рддреНрддрд╛ рдорд╛рдирдХреЛрдВ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ:


рдпрд╣ рдпреЛрдЬрдирд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╢реАрдЯ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЧрдИ рдереАред DIHALT рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж рдЙрдирдХрд╛ рд╢реБрд░реБрдЖрддреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрд░рд╛ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдерд╛ред
рдШрдЯрдХ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВред рдбреЗрдЯрд╢реАрдЯ рд╕реЗ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреИрдкреЗрд╕рд┐рдЯрд░ рд╕реА 1 рдФрд░ рд╕реА 2 рдкрд░ рдлрд┐рд▓реНрдЯрд░ рдПрдбреАрд╕реА рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред Photoresistor LDR1 рдПрдХ рдкреНрд░рдХрд╛рд╢ рд╕рдВрд╡реЗрджрдХ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рд░реЛрдзрдХ R3 рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдбрд┐рд╡рд╛рдЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдбреАрд╕реЗрдВрдЯ рдореЛрдЯрд░ рдХреЛ BC337 рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдиреБрдЕрд▓ рд░рд┐рд▓реАрдЬ рдмрдЯрди S1 рдФрд░ рджреЛ-рд░рдВрдЧ рдХреЗ рдПрд▓ рдИ рдбреА рднреА рдЖрд░реЗрдЦ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рджреЛ рд░рдВрдЧреЛрдВ рд╡рд╛рд▓реА рдПрд▓рдИрдбреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЭрдкрдХреА рд▓реЗрддрд╛ рд╣реИ; рдЬрдм рдмреИрдЯрд░реА 2.5 рд╡реА рд╕реЗ рдиреАрдЪреЗ рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд▓рд╛рд▓ рдЭрдкрдХреА рд▓реЗрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХрд╛ рд╕реНрд░реЛрдд 32768 рд╣рд░реНрдЯреНрдЬ рдкрд░ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЬреЗрдб 1 рд╣реИ, рдЬреЛ рдПрдХ рдмреЛрд░реНрдб рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ

рдореИрдВрдиреЗ C ++ рдореЗрдВ IAR рдПрдВрдмреЗрдбреЗрдб рд╡рд░реНрдХрдмреЗрдВрдЪ рдореЗрдВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛ред рдореИрдВ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрд╕рдХрд╛ рдХреЛрдб рд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред

Spary.h рд╕реБрд░рдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛрдб
рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╕реНрдкреНрд░реЗред рдПрдЪ
#ifndef __SPRAY_H_ #define __SPRAY_H_ #include <sstream> //  #define BUTTON BIT4; //    #define SPRAY_PORT BIT6;// P1.6 #define LED_GREEN BIT1; // P2.1 #define LED_RED BIT2; // P2.2 #define LIGHT_SENSOR INCH_5; // A5 #define DARK_VALUE 650; //    " ." #define LOWBATT_VALUE 520; //     . //  unsigned int SleepPeriod = 900; //     . 15 . (900) unsigned int SpayDelay = 5; //    5. unsigned int DarkValue = 650; //    " ." unsigned int LowBattValue = 520; //     . unsigned int BattInterval = 5; //    5. //  unsigned int ADCValue; //   unsigned int SprayCount; //    unsigned int TimerCount = 0; //    unsigned int BattTimer = 0; //     unsigned int RXByte; //       UART //  bool ADCDone = false; //    bool LightOn = false; //    ( ) bool SleepMode = false; //    (  15 ) bool IsCounting = false; //     ,  //      bool LowBatt = false; //     bool BlinkOn = false; //     bool Tick = false; //       bool IsADCOn = false; //     bool IsADCLight = true; //     (true -   // , false - ) bool ForceSpay = false; //       bool UARTReceived = false; //     UART //  void UARTSend(string str); //   UART void LightSensorOn(); //       void VCCSensorOn(); //       unsigned int ReadCountFromFlash(); //     void WriteCountToFlash(unsigned int); //     void Spray(); //   #endif 



рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд╛рдаред main.cpp:
 #include <msp430g2553.h> #include "spray.h" int main( void ) { //  WDT    WDTCTL = WDTPW + WDTHOLD; //    //------------------------- //  - P1DIR &= ~BUTTON; //     P1REN |= BUTTON; //     P1OUT &= ~BUTTON; //   - GND P1IES |= BUTTON; //     P1IFG &= ~BUTTON; //    P1IE |= BUTTON; //     P1DIR |= SPRAY_PORT; //     P1OUT &= ~SPRAY_PORT; //     //     P2DIR |= LED_GREEN P2DIR |= LED_RED; //    ( ) P2OUT |= LED_GREEN; P2OUT &= ~LED_RED; //  . //------------------------- //   DCOCTL = CALDCO_1MHZ; //     ~ 1 BCSCTL1 = CALBC1_1MHZ; //------------------------- //    TACTL = TASSEL_1 + MC_1; //    ACLK (), //     CCR0 CCR0 = 0x8000; // ..   32768,       //        CCTL0 = CCIS0 + OUTMOD0 + CCIE; //  ,     //     //------------------------- // UART.      FLASH P1SEL = BIT1 + BIT2; //    P1SEL2 = BIT1 + BIT2; // UART UCA0CTL1 |= UCSSEL_2; //   -   SMCLK ~ 1MHz UCA0BR0 = 0x68; //   9600 UCA0BR1 = 0; // 1000000 / 9600 = 104 = 0x68 UCA0MCTL = UCBRS0; UCA0CTL1 &= ~UCSWRST; //       IE2 = UCA0RXIE; //     UART //------------------------- // Flash FCTL2 = FWKEY + FSSEL1 + FN1; //       //    .   65535 -  //   SprayCount = ReadCountFromFlash(); if(SprayCount == 65535) { SprayCount = 0; //   WriteCountToFlash(SprayCount); //  0  Flash } //------------------------- __delay_cycles(2000); //    //------------------------- __bis_SR_register(GIE); //    P2OUT &= ~LED_GREEN; //   .  . UARTSend("Ready\r\n"); //   while(true) { if(Tick) //   . { Tick = false; //   BattTimer++; if(BattTimer >= BattInterval) //       { BattTimer = 0; //   VCCSensorOn(); //    } if(!SleepMode) //      { LightSensorOn(); //    if(IsCounting) //     { if(TimerCount >= SpayDelay) //    { Spray(); //   } } } else { //     if(TimerCount >= SleepPeriod) { TimerCount = 0; //   SleepMode = false; //     } } } if(ADCDone) //    { ADCDone = false; //    if(IsADCLight) //      { if(ADCValue < DarkValue) //  . { LightOn = true; //   " " IsCounting = false; //   (   ,  ) TimerCount = 0; //   } else //    { if(LightOn) //    { LightOn = false; //   IsCounting = true; //      TimerCount = 0; } } } else //    { if(ADCValue < LowBattValue) { LowBatt = true; //     } else { LowBatt = false; //  -   } } } if(ForceSpay) //  .  . { ForceSpay = false; Spray(); } if(UARTReceived) //   UART.   . { UARTReceived = false; ostringstream s; s << SprayCount << "\r\n"; UARTSend(s.str()); } } } //   UART void UARTSend(string str) { int len = str.length(); for(int i=0;i<len;i++) { while(!(IFG2&UCA0TXIFG)); UCA0TXBUF = str[i]; } } //       void LightSensorOn() { if(!IsADCOn) { IsADCOn = true; IsADCLight = true; ADC10CTL0 &= ~ENC; ADC10CTL0 = ADC10SHT_3 + ADC10ON + ADC10IE; ADC10CTL1 = ADC10SSEL_2 + LIGHT_SENSOR; ADC10CTL0 |= ENC + ADC10SC; } } //       void VCCSensorOn() { if(!IsADCOn) { IsADCOn = true; IsADCLight = false; ADC10CTL0 &= ~ENC; ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + REF2_5V + ADC10IE; ADC10CTL1 = ADC10SSEL_2 + INCH_11; __delay_cycles(128); ADC10CTL0 |= ENC + ADC10SC; } } //     unsigned int ReadCountFromFlash() { __bic_SR_register(GIE); //    int *Flash_ptr; Flash_ptr = (int *) 0x1040; //   *Flash_ptr = 0; //   unsigned int value = *Flash_ptr; //   __bis_SR_register(GIE); //   return value; //   } //     void WriteCountToFlash(unsigned int value) { __bic_SR_register(GIE); //   int *Flash_ptr; Flash_ptr = (int *) 0x1040; //   FCTL1 = FWKEY + ERASE; //     FCTL3 = FWKEY; *Flash_ptr = 0; //   FCTL1 = FWKEY + WRT; *Flash_ptr++ = value; //    Flash FCTL1 = FWKEY; FCTL3 = FWKEY + LOCK; //     __bis_SR_register(GIE); //   } //   void Spray() { __bic_SR_register(GIE); //   P1OUT |= SPRAY_PORT; //   __delay_cycles(500000); //  ~ 0.5  (  1) P1OUT &= ~SPRAY_PORT; //   //         LightOn=false; SleepMode=true; IsCounting=false; TimerCount=0; SprayCount++; WriteCountToFlash(SprayCount); __bis_SR_register(GIE); //    } //--------------------------- //   //   #pragma vector=ADC10_VECTOR __interrupt void ADC_Handler() { ADCValue = ADC10MEM; //      ADCDone = true; //     IsADCOn = false; } //     #pragma vector=PORT1_VECTOR __interrupt void Button_Handler() { P1IE &= ~BUTTON; //      P1IFG &= ~BUTTON; //   ForceSpay = true; //     //     __delay_cycles(300000); P1IE |= BUTTON; //   } //     1  . #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_Handler() { //     if(!BlinkOn) //    { //         //      - ,   if(LowBatt) { P2OUT |= LED_RED; } else { P2OUT |= LED_GREEN; } BlinkOn = true; } else //    { P2OUT &= ~LED_RED; P2OUT &= ~LED_GREEN; BlinkOn = false; } TimerCount++; //     Tick=true; //   } //     UART #pragma vector=USCIAB0RX_VECTOR __interrupt void UART_Handler() { RXByte = UCA0RXBUF; UARTReceived = true; } 


рдЗрд╕ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рд┐рд▓реЗрдВрдбрд░ рдХреЗ рдЕрдВрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреЗ рд╕реНрдкреНрд░реЗ рд╕реЗ рдЪрд▓реЗрдЧрд╛ред


рд╕рднрд╛

рдмреЛрд░реНрдб рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:




рдпрд╣рд╛рдВ рд▓реЙрдиреНрдЪрдкреИрдб рдбреАрдмрдЧ рдмреЛрд░реНрдб рдХреЗрд╡рд▓ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓реЗрдЖрдЙрдЯ рдкрд░ рд░рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдЬрдм рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрд░реНрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЖрд╡рд╛рд╕ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдб рд▓реЗрдЖрдЙрдЯ (рд╕реНрдкреНрд░рд┐рдВрдЯ-рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛):


рддрдм рдмреЛрд░реНрдб рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ LUT рд╡рд┐рдзрд┐ ( DIHALT рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж) рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдмреЛрд░реНрдб рдХреЛ рдлреЗрд░рд┐рдХ рдХреНрд▓реЛрд░рд╛рдЗрдб рдФрд░ рдЯрд┐рдирдб рдореЗрдВ рдЦреЛрджрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдЧрд▓рд╛, рдШрдЯрдХреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд╕реЙрдХреЗрдЯ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛ, рд╕рд╛рде рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдкрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдмрджрд▓ рджреЗрдВред






рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдирдП рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред




рдирд┐рд╖реНрдХрд░реНрд╖


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

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

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


All Articles