рдПрдкреАрдбреАрдПрд╕ -9960 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ
рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛, рдЬрд╣рд╛рдВ рдпрд╣ рд░рдВрдЧ рдорд╛рдиреНрдпрддрд╛ рдФрд░ рдкреНрд░рдХрд╛рд╢ рд╕реНрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рджреЛ рдмрд╛рддреЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдИрдВ: 1) рдЗрд╢рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдФрд░ 2) рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, рдЕрдЧрд░ рдореИрдВрдиреЗ рдПрдкреАрдбреАрдПрд╕ -9960 рдХрд╛ рд╡рд░реНрдгрди рд▓рд┐рдпрд╛, рддреЛ рдЗрд╢рд╛рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛, рд╡рд░реНрдгрди рдХреБрдЫ рдЕрдзреВрд░рд╛ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдорд┐рд▓рд╛ред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдЙрди рд╣рд╛рд╡рднрд╛рд╡ рдкрд╣рдЪрд╛рди рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рд▓рд╛рддрд╛ рд╣реВрдВ рдЬреЛ APDS-9960 рд╕реЗрдВрд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдЦ рд╕реЗрдВрд╕рд░, рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛ред рдЖрдк рд╕реНрд╡рдпрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреАрдбреАрдПрд╕ -9960 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЗрдЦ рдПрдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛, рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЛрдб рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рддреБрд░рдВрдд рдПрдХ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреА: APDS-9960 рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрд╡рдд: рдЗрд╢рд╛рд░рд╛ рдкрд╣рдЪрд╛рди рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ; рд╡рд╣ рдРрд╕рд╛ рд╣реИ, рдпрд╣реАрдВ, рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рд░рдЬрд┐рд╕реНрдЯрд░, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдЗрд╢рд╛рд░рд╛ рдирд┐рд╣рд┐рдд рд╣реИ - рдпрд╣ APDS-9960 рдореЗрдВ рдирд╣реАрдВ рд╣реИ; рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЗрд╢рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдердо рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдВрд╡реЗрджрдХ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рд╕рдиреНрдирд┐рдХрдЯрди рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдЖрдк рд╢реЛрдзрди рджреНрд╡рд╛рд░рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рдФрд░ рд╕рднреА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди, рдЪреВрдБрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдХрд╛рд░реНрдп рд╣реИ, рд╣рдо рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдореВрд▓ UP-DOWN-LEFT-RIGHT рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрддреЗ рд╣реИрдВред
рдЕрдЪреНрдЫрд╛, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд
рдореИрдВ рдЦреБрдж рдХреЛ рдереЛрдбрд╝рд╛ рдореИрдЯрд░рд┐рдпрд▓ рд╣реЛрдиреЗ рджреВрдВрдЧрд╛ред
рдЖрдВрджреЛрд▓рди рдХреА рдЧрддрд┐ рдФрд░ рджрд┐рд╢рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреАрдбреАрдПрд╕ -9960 рдПрдХ рдЖрдИрдЖрд░ рдПрд▓рдИрдбреА рдФрд░ рдЪрд╛рд░ рдлреЛрдЯреЛрдбрд╛рдпреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирд┐рдХрдЯ рдЕрд╡рд░рдХреНрдд (рдПрдирдЖрдИрдЖрд░) рд░реЗрдВрдЬ рдореЗрдВ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред

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

рдЕрднреНрдпрд╛рд╕
APDS-9960 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА
рдкрд┐рдЫрд▓реА рдмрд╛рд░ , рд╣рдо STM32VLDISCOVERY рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдХрдиреЗрдХреНрд╢рди рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред
APDS-9960 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрд╣рдо рд╕реЗрдВрд╕рд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣:
APDS9960_initvoid APDS9960_init(void) { i2c1_write(APDS9960_CONTROL, DEFAULT_PGAIN); i2c1_write(APDS9960_GPENTH, DEFAULT_GPENTH); i2c1_write(APDS9960_GEXTH, DEFAULT_GEXTH); i2c1_write(APDS9960_GCONF2, DEFAULT_GGAIN); i2c1_write(APDS9960_GPULSE, DEFAULT_PULSE_LENGTH); i2c1_write(APDS9960_PPULSE, DEFAULT_PULSE_LENGTH); }
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдЪрд▓реЛ рдареАрдХ рд╣реИред
i2c1_write(APDS9960_CONTROL, DEFAULT_PGAIN);
PGAIN (рдирд┐рдХрдЯрддрд╛ рд▓рд╛рдн рдирд┐рдпрдВрддреНрд░рдг) рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдирд┐рдХрдЯрддрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдХреЗ рд▓рд╛рдн рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ 2 рдХрд╛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдЬреЛ рд▓рд╛рдн рдХреЗ рдЪрд╛рд░ рдЧреБрдирд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
i2c1_write(APDS9960_GPENTH, DEFAULT_GPENTH); i2c1_write(APDS9960_GEXTH, DEFAULT_GEXTH);
GPENTH (Gesture рдирд┐рдХрдЯрддрд╛ рджрд░реНрдЬ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рд░рдЬрд┐рд╕реНрдЯрд░) - рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЗрд╕реНрдЪрд░ рдкрд╣рдЪрд╛рди рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрдЯрддрд╛ рд╕реАрдорд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
GEXTH (Gesture Exit Threshold Register), рдХреНрд░рдорд╢рдГ, рдЗрд╢рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдЕрдВрдд рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╣рд▓реАрдЬ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
i2c1_write(APDS9960_GCONF2, DEFAULT_GGAIN);
GCONF2 (рдЬреЗрд╕реНрдЪрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛ) рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ, рд╣рдордиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ GGAIN (рдЬреЗрд╕реНрдЪрд░ рдЧреЗрдЯ рдХрдВрдЯреНрд░реЛрд▓) рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд▓рд╛рдн рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдЪрд╛рд░ рдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
i2c1_write(APDS9960_GPULSE, DEFAULT_PULSE_LENGTH); i2c1_write(APDS9960_PPULSE, DEFAULT_PULSE_LENGTH);
рдмреИрдХрд▓рд╛рдЗрдЯред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрдиреНрдлреНрд░рд╛рд░реЗрдб рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд░реЛрдд рдХрд╛ рдорд╛рди 0 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ 100 рдПрдордП рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░реЗрдЧрд╛ - рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗред
APDS-9960 рдореЗрдВ IR рд░реЛрд╢рдиреА рджрд╛рд▓реЛрдВ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИ рдФрд░ рдЗрд╢рд╛рд░реЛрдВ GPULSE (рдЬреЗрд╕реНрдЪрд░ рдкрд▓реНрд╕ рдХрд╛рдЙрдВрдЯ рдФрд░ рд▓рдВрдмрд╛рдИ) рдХреЗ рд▓рд┐рдП рдЗрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: GPLEN (рдЬреЗрд╕реНрдЪрд░ рдкрд▓реНрд╕ рд▓рдВрдмрд╛рдИ) рдФрд░ GPULSE (рдЬреЗрд╕реНрдЪрд░ рдкрд▓реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛), рд╕рд╛рде рд╣реА PPULSE (рдирд┐рдХрдЯрддрд╛ рдкрд▓реНрд╕ рдХрд╛рдЙрдВрдЯ рд░рдЬрд┐рд╕реНрдЯрд░) рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред ): PPLEN (рдирд┐рдХрдЯрддрд╛ рдкрд▓реНрд╕ рд▓рдВрдмрд╛рдИ) рдФрд░ PPULSE (рдкреНрд░реЙрдХреНрд╕рд┐рдорд┐рдЯреА рдкрд▓реНрд╕ рдХрд╛рдЙрдВрдЯ) рджрд╛рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдкрд▓реНрд╕ рдХреА рдЕрд╡рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдХрд┐ GPLEN рдФрд░ PPLEN 2 рдХрд╛ рдореВрд▓реНрдп 16 ╬╝s рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдФрд░ GPULSE рдФрд░ PPULSE 9 рдХрд╛ рдорд╛рди, рдЬреЛ 10 рджрд╛рд▓реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрдЯрдЕрдк рдкрд┐рдЫрд▓реЗ APDS-9960 рд╕рдореАрдХреНрд╖рд╛ рд╕реЗ рд░рдВрдЧ рдкрд╣рдЪрд╛рди рдФрд░ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рдХрд▓рд╛ред
рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛рдЕрдм рд╣рдо рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрдХреНрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╣рд░ рдЕрдм рдФрд░ рдлрд┐рд░ рдлреЛрдЯреЛрдбрд╛рдпреЛрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЗрд╢рд╛рд░реЗ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП APDS-9960 рдХреЛ рдЗрд╢рд╛рд░реЛрдВ рдФрд░ рдЬрд╝реВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред
GesturesSet(GESTURES_START);
рдФрд░ рддреБрд░рдВрдд рд╣рдо GVALID рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред GVALID (Gesture FIFO Data) GSTATUS рд░рдЬрд┐рд╕реНрдЯрд░ (Gesture Status Register) рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рдЧреИрд░-рд╢реВрдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ рдХреЗ рдкрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬреЗрд╕реНрдЪрд░ рдбреЗрдЯрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рд╣рдореЗрдВ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╢рд╛рд░реЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдмрдлрд░ рдореЗрдВ рд╣реИ, рд░реИрдо рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 32 x 4 рдмрд╛рдЗрдЯреНрд╕ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕ рдмрдлрд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ GFLVL (рдЬреЗрд╕реНрдЪрд░ FIFO рд╕реНрддрд░) рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдХрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдореЗрд░реЗ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдЕрдиреБрднрд╡рдЬрдиреНрдп рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, GFLVL * 4 рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

рдареАрдХ рд╣реИ, рдмрдлрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░, рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ - рдкрд╣рд▓реЗ рдЖрдЙрдЯред рдпрд╣реА рд╣реИ, рдореЛрдЯреЗ рддреМрд░ рдкрд░, "рдкрд╣рд▓реЗ" рдкреНрд░рддреНрдпреЗрдХ рдлреЛрдЯреЛрдбрд┐рдпреЛрдб рд╕реЗ рд╕рдВрдХреЗрдд рдЖрдпрд╛, "рдЙрдЪреНрдЪ" рдпрд╣ GFLVL рдореЗрдВ рд╣реИред
рдлреЛрдЯреЛрдбрд╛рдпреЛрдбреНрд╕ (рдпреВрдбреАрдПрд▓рдЖрд░) рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЬреЗрд╕реНрдЪрд░ рдлреАрдлреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- GFIFO_U (рдЬреЗрд╕реНрдЪрд░ FIFO рдбреЗрдЯрд╛, рдпреВрдкреА)
- GFIFO_D (рдЗрд╢рд╛рд░рд╛ рдлреАрдлреЛ рдбреЗрдЯрд╛, рдбрд╛рдЙрдирд▓реЛрдб)
- GFIFO_L (Gesture FIFO рдбреЗрдЯрд╛, LEFT)
- GFIFO_R (рдЬреЗрд╕реНрдЯреНрдпреЛрд░ рдлреАрдлреЛ рдбреЗрдЯрд╛, рд░рд╛рдЗрдЯ)
рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреАрдПрдлрдПрд▓рд╡реАрдПрд▓ рдХреЛ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, рдЬреАрдПрдлрдПрд▓рд╡реАрдПрд▓ рдХреЗ рд╢реВрдиреНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ рдкреВрд░реЗ рдмрдлрд░ рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рдмрдлрд╝рд░ рдХреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝реЗрдВрдЧреЗред
GestureUp = i2c1_read(APDS9960_GFIFO_U); GestureDown = i2c1_read(APDS9960_GFIFO_D); GestureLeft = i2c1_read(APDS9960_GFIFO_L); GestureRight = i2c1_read(APDS9960_GFIFO_R);
рдЗрд╢рд╛рд░реЗ рдХреА рдкрд╣рдЪрд╛рдирдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЗрд╢рд╛рд░рд╛ рд╣реБрдЖ, рд╣рдо рд╕рд░рд▓ рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗ:
GestUpDown = GestureUp-GestureDown; GestLeftRight = GestureLeft-GestureRight;
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рд╕рдордп рдХреМрди рд╕реЗ рдЗрд╢рд╛рд░реЗ рд╣реБрдП рд╣реИрдВ, рдпрд╣ GestUpDown рдФрд░ GestLeftRight рдХреЗ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ред
рдпрд╣реА рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ GestUpDown рдФрд░ GestLeftRight рдЪрд░ рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реБрдП, рд╣рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЗрд╢рд╛рд░рд╛ рд╕рд╣реА рд╣реИред
GestUpDown рдФрд░ GestLeftRight рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рддрд╛рд▓рд┐рдХрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред

рдЕрдм GFLVL рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ:
GesturesSet(GESTURES_STOP);
... рдФрд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрдХреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд╛рдкрд╕ред
рдФрд░ рдЕрдм рдкреВрд░рд╛ рдХреЛрдб:
main.c #include "stm32f10x.h" #define APDS9960_I2C_ADDR 0x39 #define APDS9960_ENABLE 0x80 #define APDS9960_GSTATUS 0xAF #define APDS9960_GFLVL 0xAE
рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ APDS-9960 рдХрд╛ рдЬреЗрд╕реНрдЪрд░ рдореИрдХреЗрдирд┐рдЬреНрдо рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдорд╛рдиреНрдпрддрд╛ рд╕реНрдерд┐рд░ рд╣реИ, APDS-9960 рдпреВрд╡реА рдФрд░ рдЖрдИрдЖрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдлрд┐рд▓реНрдЯрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред