
рдореИрдВрдиреЗ рдХреЙрдорд░реЗрдб
рдбрд▓рд┐рдирдЬ рд╕реЗ
"рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдмрдирд╛рдирд╛" рд▓реЗрдЦ рдкрдврд╝рд╛ рдФрд░ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрд╡рд╛рдЬ рдЙрдард╛рдИ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛ рдЧрдпрд╛ред рдЕрд░реНрдерд╛рддреН,
рдЕрдм рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП 500 рд░реВрдмрд▓ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ (рдФрд░ рдпрджрд┐ рд╣рдо рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд░рд╛рд╢рд┐ рдХрд╛рдлреА рдХрдо рд╣реЛрдЧреА), рдФрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рд╕рд░реНрд╡рд░ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдВред рд╡рд╣рд╛рдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд╛рд▓реЗрдВ рдЬреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛ред рдпрд╛ рддреЛ рдЬреИрдмрд░ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЗ (рд╣рд╛рдБ, рдХрдо рд╕реЗ рдХрдо рдПрдирд╕реА рдФрд░ рдЯреЗрд▓рдиреЗрдЯ рд╕рдм рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВ)ред рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд░рд┐рд╕реАрд╡рд░ рдбрд╛рд▓ рджрд┐рдпрд╛ред рдФрд░ рдирдП рд╕рд╛рд▓ рдкрд░ рд╣рдо рд╕рднреА рдХреЛ рдмрдзрд╛рдИ рд╣реЛрдЧреАред
рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреА рдЧреАрдХреА рдмрдзрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рд░реНрдЯреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдПрдХ рдПрд▓рдкреАрдЯреА рдкреЛрд░реНрдЯ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХреА, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ COM рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдмрдирд╛рдпрд╛ рдерд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, COM рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рдпрд╣ рдПрдХ рдпреВрдПрд╕рдмреА-рдЯреВ-
рдпреВрдПрдЖрд░рдЯреА рдПрдбреЙрдкреНрдЯрд░ рд╣реИ, рдЬрд┐рд╕реЗ
рдбрд▓рд┐рдирд┐рдЬ рдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ
" рдпреВрдПрдЖрд░рдЯреА рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рд▓реЛрд╣рд╛
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╣рд╛рдВ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдИрдПрд╕рд╕реА рдЕрдиреБрдХреНрд░рдореЛрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИред
рдмреЛрд░реНрдб рдЙрдкрд╕реНрдерд┐рддрд┐рдЗрд╕ рдмреЛрд░реНрдб рдореЗрдВ рдХрд╛рдлреА рдЕрдзрд┐рдХрддрд╛рдПрдВ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреА рд░реВрдкрд░реЗрдЦрд╛рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдбрд┐рдпреЛ рд╢реМрдХрд┐рдпрд╛ рдореЗрдВ рд╕рдВрднрд╡рддрдГ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ AVR рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реНрдХрд╛рд░реНрдл рд╣реИ, рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдиреНрдп рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рдеред FT232RL рдХреЛ MAX232 (рдЙрдЪрд┐рдд рдмреЙрдбреА рдХрд┐рдЯ рдХреЗ рд╕рд╛рде) рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд░реЗрдбреА-рдореЗрдб USB-UART рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдмреИрдХрд▓рд╛рдЗрдЯ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ (рдпрд╣ рдПрдХ рдмреИрдХрд▓рд╛рдЗрдЯ рдХрдВрдЯреНрд░реЛрд▓ рд╕рд░реНрдХрд┐рдЯ рд╣реИ)ред рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрдореАрди рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреЛ DIHALT рдкрд┐рдирдмреЙрд░реНрдб v1 рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЗ рдЦреБрд╢ рдорд╛рд▓рд┐рдХ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬ рдФрд░ рдорд┐рд▓рд╛рдк рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИред
рдкрд┐рдирдмреЙрд░реНрдб v1рд▓рдЧрднрдЧ рдпрд╣реА рдмрд╛рдд рдЕрд░реНрдбрд┐рдиреЛ рдХреЗ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдХрд╣реА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдкрдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рдФрд░ рддрд╛рд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ, рдПрдХ рдкреНрд░рддрд┐рд░реЛрдзрдХ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛
Arduinoрдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдореЗрд░реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ), рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ Atmega 16 рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред
рд╢реАрддрд▓!
рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрд▓рд╕реАрдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдереЗ, рдЖрд░рдВрдн рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдбрд▓рд┐рдирдЬ
рдХреЙрдорд░реЗрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓-рд░реА-рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдлрд╛рдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рдм рдХреБрдЫ рдЕрд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдирддреАрдЬрддрди, рдореИрдВрдиреЗ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдкреВрд░рд╛ рдХреЛрдб рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рд╣рд░ рдХреЛрдИ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд░реЛрдд рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ HD44780_hw.h
#include "hd44780_hw.h"
UART рдХреА рдЧрддрд┐ рдХреЛ 9600 рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╣реБрдЖ, рдФрд░ рдпрд╣ рдордд рдкреВрдЫреЛ рдХрд┐ рдХреНрдпреЛрдВред
#define baudrate 9600L
рд╕рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд░рдВрднреАрдХрд░рдг HwInit рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ:
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдИрдПрд╕рд╕реА рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЧ рд╕реЗ рд▓рд┐рдпрд╛ рдерд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рддрджрдиреБрд╕рд╛рд░ рдорд╛рдЗрдХрд▓ рдореИрдХрд▓реЗрд▓рди рд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛
lptlcd рдореЗрдВ рд▓рд┐рдпрд╛ ред рд╣реИрдВрдбрд▓рд░ рд╕реНрд╡рдпрдВ esc.c рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЙрд╕реА рд╣реИрдВрдбрд▓ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ рдЗрдВрдкреНрдпреВрдЯ рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ UARTA рдХреЛ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
UART рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рдЖрддреА рд╣реИред рдФрд░ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣рдо рд╕рдВрднрд╛рд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╣реИрдВрдбрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд▓реЗрдкреНрдЯ рдкреЛрд░реНрдЯ рдкрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрдХреНрд░реАрди рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ, рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдФрд░ рдореЗрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд░рд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдИрд╕реНрдЯрд░ рдЕрдВрдбреЗ рдЙрддреНрдкрд╛рджрди рд╕рдорд╛рд░реЛрд╣ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЪрд╛рд░-рд▓рд╛рдЗрди рд╕реНрдХреНрд░реАрди рдкрд░ рдФрд░ рд▓реЙрдиреНрдЧ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░рд╛ рдПрдХ рдЕрд▓рдЧ рдХрд╛рдо рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗрд╡рд▓ 16x2 рд╣реИред рдЦреИрд░, рдЕрдкреНрд░рд┐рдп рд╕реЗ, рдЬрдм рддрдХ рдЖрдкрдХреЗ рдлреЛрдВрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрднреА рднреА рдПрдХ рдареВрдВрда рд╣реИред
рдкрд░реАрдХреНрд╖рдг
рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, рдореИрдВ AVR рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг 4 + avr-toolchain (3.3.0.710) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред Sewsред рдЬрдм рд╣рдо рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдИрдПрд╕рд╕реА рдЕрдиреБрдХреНрд░рдореЛрдВ рдкрд░ рдПрдХ рдФрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдореИрдВ рдореВрд▓ рд▓реЗрдЦ рдХрд╛ рдкрд╛рда рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВред
рддреЛ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ:
- \ 033 = ESC рдЕрдиреБрдХреНрд░рдо рднреЗрдЬрдирд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
- [A = рдХрд░реНрд╕рд░ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдКрдкрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [B = рдХрд░реНрд╕рд░ рдХреЛ рдПрдХ рд░реЗрдЦрд╛ рд╕реЗ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдПрдБ
- [C = рдХрд░реНрд╕рд░ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [D = рдХрд░реНрд╕рд░ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [H = рдХрд░реНрд╕рд░ рдХреЛ рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ - рдШрд░ (рд╕реНрдерд┐рддрд┐ 0,0)
- [рдЬреЗ = рд╕рдм рдХреБрдЫ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ, рдХрд░реНрд╕рд░ рдШрд░ рд╡рд╛рдкрд╕ рди рдХрд░реЗрдВ!
- [K = рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдорд┐рдЯрд╛рддрд╛ рд╣реИ, рдХрд░реНрд╕рд░ рдХреЛ рдШрд░ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ!
- [M = рдирдпрд╛ рдЪрд░рд┐рддреНрд░ рдорд╛рдирдЪрд┐рддреНрд░ (DZ - рд╕рдордЭрд╛рдПрдВ рдХреНрдпреЛрдВ!)
- [Y = рд╕реНрдерд┐рддрд┐ Y (рдиреАрдЪреЗ FAQ рджреЗрдЦреЗрдВ)
- [X = рд╕реНрдерд┐рддрд┐ X (рдиреАрдЪреЗ FAQ рджреЗрдЦреЗрдВ)
- [R = CGRAM рдореЗрдореЛрд░реА рдЪрдпрди
- [V = рд╕реНрдХреНрд░реЙрд▓ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛
- [W = рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рд╣реИ
- [рдмреА = рдмреИрдХрд▓рд╛рдЗрдЯ рдЪрд╛рд▓реВ / рдмрдВрдж рд╣реИ (рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред
рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб \ 033 рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ!
- \ r = рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди (рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдкрд░ рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдерд┐рддрд┐ 0 рдкрд░ рд▓реМрдЯрд╛рдПрдВ!)
- \ n = рдирдИ рдкрдВрдХреНрддрд┐
- \ t = рдЯреИрдм (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 3 рд╡рд░реНрдг)
рдореИрдВ рдпрд╣ рднреА рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореВрд▓ рд▓реЗрдЦ
habrahabr.ru/post/206148 рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓реМрдЯреЗрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдлрдПрдХреНрдпреВ рджреЗрдЦреЗрдВ - рдЙрдирдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЙрджрд╛рд╣рд░рдгред
рд╣рдо USB рдкреЛрд░реНрдЯ рдкрд░ рдирдП рдлреНрд▓реИрд╢ рдХрд┐рдП рдЧрдП рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, dmesg рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде, рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдирдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ:
/dev/ttyUSB0
рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджреЗрдВ:
echo -en "\033[H\033[J Happy GEEEKS\r\n Happy New Year" > /dev/ttyUSB0
рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЧреАрдХреНрд╕ рд╕реЗ рдирдП рд╕рд╛рд▓ рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВ:
GIKOVSKY рдХреЛ рдмрдзрд╛рдИ !!!рдЦреИрд░, рд╕рдордп-рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рд▓рд┐рдкрд┐ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╣реЛ рдЧрдИ рд╣реИ рд╡рд╣ рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИ:
while true; do echo -en "\033[H`date +\"%d.%m.%Y\"` \r\n`date +%r`" > /dev/ttyUSB0 ; sleep 1s; done
рдмреВрдо рдШрдбрд╝реАрд▓реЗрдХрд┐рди PinBoard V1 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдкрд┐рдирдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЖрд░реЗрдЦ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдкрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреНрд░реАрди hd44780_hw.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рд╣реЛред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
#define LCD_DATA_PIN_D7 PA6 #define LCD_DATA_PIN_D6 PA5 #define LCD_DATA_PIN_D5 PA4 #define LCD_DATA_PIN_D4 PA3 #define LCD_DATA_PINR_D7 PINA #define LCD_DATA_PINR_D6 PINA #define LCD_DATA_PINR_D5 PINA #define LCD_DATA_PINR_D4 PINA #define LCD_DATA_DDR_D7 DDRA #define LCD_DATA_DDR_D6 DDRA #define LCD_DATA_DDR_D5 DDRA #define LCD_DATA_DDR_D4 DDRA #define LCD_DATA_PORT_D7 PORTA #define LCD_DATA_PORT_D6 PORTA #define LCD_DATA_PORT_D5 PORTA #define LCD_DATA_PORT_D4 PORTA #define LCD_RS_DDR DDRA #define LCD_RS_PORT PORTA #define LCD_RS_PIN PA0 #define LCD_RW_DDR DDRA #define LCD_RW_PORT PORTA #define LCD_RW_PIN PA1 #define LCD_E_DDR DDRA #define LCD_E_PORT PORTA
рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд┐рдирдмреЛрд░реНрдб рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ, рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
echo -en "\033[H033[JSpasibo DiHalt" > /dev/ttyUSB0
рдмреЛрд░реНрдб рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ?
рдпрджрд┐ рд╣рдо рд╣реИрдмрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреИрд▓реЗрдВрдбрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо SUDDENLY рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдирдП рд╕рд╛рд▓ рд╕реЗ рдкрд╣рд▓реЗ 10 рджрд┐рди рдмрд╛рдХреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд╕рд╛рде рдЫреБрдЯреНрдЯреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реЛрд▓реНрдбрд░рд┐рдВрдЧ-рд╡рд░реНрдЪреБрдЕрд▓ рднреА! рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рдХрд▓реНрдкрдирд╛ рд╣реИред
рдХреЙрдорд░реЗрдб
dlinyj рдиреЗ рдПрдХ
рд╕рдореВрд╣ рдмрдирд╛рдпрд╛, рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдмрдзрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдЖрдХрд░реНрд╖рдХ рддрд░реАрдХреЗ рд╕реЗ рдмрдзрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрднреА, рд╡рд╣рд╛рдБ рд▓реЛрдЧ рд╕рд░реНрд╡рд░-рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╣ рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╣рдорд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд▓рд╛рдПрдВрдЧреЗ! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рджрд░реНрд╢рди рд╣реИ, рдФрд░ рдЖрдк рдХрд┐рд╕реА рдкрд╛рд░реНрдЯреА рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣рд╛рдВ рдЬрд╛рдПрдВред рдпрд╣ рдХрд┐рд╕реА рднреА рд╡рд╛рдгрд┐рдЬреНрдп рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рд╛рдн рдХреЛ рд╕рд╣рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рдирдП рд╕рд╛рд▓ рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВред
рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕реНрдХреНрд░реАрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдЧреАрджрдбрд╝ рддрд░реАрдХреЗ рд╕реЗ рдмрдзрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдИрдПрд╕рд╕реА рдЕрдиреБрдХреНрд░рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ:
while true; do echo -en "\033[H`date +\"%d.%m.%Y\"` \r\n`date +%r`" ; sleep 1s; done
рдЖрдЙрдЯрдкреБрдЯ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╣рдЯрд╛рддреЗ рд╕рдордп, рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдЕрдиреНрдпрдерд╛, рд╣рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ:
рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рд╣реА рджреЗрдЦреЗрдВрдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯ рдЬреЛрдбрд╝реЗрдВ; рдЕрдм рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
clear; while true; do echo -en "\033[H`date +\"%d.%m.%Y\"` \r\n`date +%r`" ; sleep 1s; done
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрдЬрд╛рдп рдХрдВрд╕реЛрд▓рдкрд░рд┐рдгрд╛рдо
рдореИрдВ рдЫреБрдЯреНрдЯреА рдХрд╛ рдорд╛рд╣реМрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЫреБрдЯреНрдЯреА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рджреЛрд╕реНрддреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдЕрд▓рд╛рд╡рд╛ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП geek рдФрд░ рдХрд╣рд╛рдБ рд╣реИ? рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдирд╡ рд╡рд░реНрд╖ рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╡рд┐рджреЗрд╢реА рддрд░реАрдХрд╛ рдЪреБрдирддреЗ рд╣реИрдВ!
рдбрд╛рдЙрдирд▓реЛрдб рд▓рд┐рдВрдХ:
рдореЗрд░реЗ рдмреЛрд░реНрдб рдФрд░ рдкрд┐рдирдмреЛрд░реНрдб рдХреЗ рд╕реНрд░реЛрдд
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВред