Đ
āĻāĻ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻžāĻŦ āĻāĻŋāĻāĻžāĻŦā§ STM32 (āĻŦā§āĻ˛ā§ āĻĒāĻŋāĻ˛) āĻāĻŦāĻ STM8 āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻšāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĄā§āĻāĻžāĻļāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻŽā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ˛āĻāĻĄāĻŋāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ¤ā§āĻ¸āĻ°ā§āĻā§āĻā§āĻ¤, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻāĻ˛ā§āĻāĻŋāĻ¤ āĻāĻ°āĻŦ, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§āĻ° āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĒāĻžāĻ ā§āĻ¯āĻāĻŋ āĻāĻŦāĻžāĻ° āĻŦāĻŋāĻļāĻžāĻ˛ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§, āĻ¤āĻžāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻāĻŋ:
āĻĻāĻžāĻŦāĻŋāĻ¤ā§āĻ¯āĻžāĻ: āĻāĻŽāĻŋ āĻāĻāĻāĻ¨ āĻĒā§āĻ°āĻā§āĻļāĻ˛ā§ āĻ¨āĻ, āĻāĻŽāĻŋ āĻāĻ˛ā§āĻāĻā§āĻ°āĻ¨āĻŋāĻā§āĻ¸ā§ āĻāĻā§āĻ° āĻā§āĻāĻžāĻ¨ āĻĨāĻžāĻāĻžāĻ° āĻāĻžāĻ¨ āĻāĻ°āĻŋ āĻ¨āĻž, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§ āĻ āĻĒā§āĻļāĻžāĻĻāĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¸āĻ˛ā§ āĻāĻŽāĻŋ āĻĻā§āĻ āĻŦāĻāĻ° āĻāĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻāĻžāĻ°ā§āĻā§āĻ āĻ āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻŦāĻ¤āĻžāĻŽāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻŽāĻžāĻā§ āĻŦāĻ˛āĻ¤ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻžāĻļāĻŋāĻ āĻĒāĻĄāĻŧāĻž āĻā§āĻ¤āĻŋāĻāĻ° āĻ¨āĻ¯āĻŧ, āĻāĻŽāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻāĻŋāĻā§ āĻā§āĻĄā§āĻ° āĻā§āĻāĻ°ā§ āĻā§āĻāĻāĻ¤ā§ āĻāĻŦāĻ āĻāĻžāĻāĻāĻŋ āĻāĻŦāĻ āĻāĻ āĻžāĻ˛ā§ āĻĒā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻ°āĻžāĻ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻ¤āĻžāĻŽ āĻ¨āĻžāĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĢā§āĻāĻžāĻ¸ āĻĄā§āĻāĻžāĻļāĻŋāĻ, āĻāĻ¸āĻĄāĻŧāĻž āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻā§āĻĄāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻĒāĻžāĻ˛āĻŋāĻļ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻāĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻā§āĻŦ āĻ¸āĻšāĻ, āĻ¯āĻĻāĻŋāĻ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤
āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻļāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻŦ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻžāĻāĻā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻŦā§āĨ¤
āĻāĻ¸āĻāĻŋāĻāĻŽ 32
DM16 āĻāĻŦāĻ SPI āĻ¸āĻš 634āĻāĻŋ āĻāĻ˛āĻāĻĄāĻŋ
āĻŦā§āĻ˛ā§ āĻĒāĻŋāĻ˛ (STM32F103C8T6) āĻāĻŦāĻ DM634 LED āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĨ¤ āĻĄā§āĻāĻžāĻļāĻŋāĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻāĻŽāĻ°āĻž āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°, STM IO āĻĒā§āĻ°ā§āĻ āĻāĻŦāĻ SPI āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻŦāĨ¤
DM634
16 x 16-āĻŦāĻŋāĻ PWM āĻāĻāĻāĻĒā§āĻ āĻ¸āĻš āĻ¤āĻžāĻāĻāĻ¯āĻŧāĻžāĻ¨āĻŋāĻ āĻāĻŋāĻĒ, āĻā§āĻāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻā§āĻ 12-āĻŦāĻŋāĻ āĻŽāĻĄā§āĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻšāĻ¸ā§āĻĨā§āĻ¯ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĨā§āĻā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻāĻžāĻ°āĻ āĻ¤āĻžāĻāĻāĻ¯āĻŧāĻžāĻ¨āĻŋāĻ,
āĻ¸āĻŋāĻā§āĻ āĻĄāĻŋāĻ¸āĻŋ āĻāĻ¤ā§āĻ¸ (āĻā§āĻ˛āĻž āĻĄā§āĻ°ā§āĻ¨)
āĻĄā§āĻŦāĻž / āĻāĻĒā§āĻ¨-āĻĄā§āĻ°ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ - āĻ¸ā§āĻāĻ; āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻ¸ā§āĻ°ā§āĻ¤ā§āĻ° āĻā§āĻ¸; āĻāĻāĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻŽāĻžāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ - āĻāĻ˛āĻāĻĄāĻŋ āĻā§āĻ¯āĻžāĻĨā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻŦā§āĻĻā§āĻ¯ā§āĻ¤āĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻā§āĻ¨ "āĻā§āĻ˛āĻž āĻĄā§āĻ°ā§āĻ¨" āĻ¨āĻ¯āĻŧ (āĻā§āĻ˛āĻž āĻ¨āĻ°ā§āĻĻāĻŽāĻž), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĄā§āĻāĻžāĻļāĻŋāĻā§ āĻĄā§āĻ°ā§āĻ¨ āĻŽā§āĻĄā§ āĻāĻāĻāĻĒā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻāĻŦā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻĒā§āĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ REXT āĻāĻŦāĻ GND āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§āĻ
REXT āĻĒāĻŋāĻ¨ āĻāĻŦāĻ āĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻā§, āĻ¯āĻž āĻāĻāĻāĻĒā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§āĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§, āĻĄā§āĻāĻžāĻļāĻŋāĻā§āĻ° 9 āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻā§āĻ°āĻžāĻĢāĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤ DM634-āĻ, āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻāĻā§āĻā§āĻŦāĻ˛āĻ¤āĻž (āĻŦāĻŋāĻļā§āĻŦ āĻāĻā§āĻā§āĻŦāĻ˛āĻ¤āĻž); āĻāĻŽāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻŦāĻŋāĻļāĻĻā§ āĻ¯āĻžāĻŦ āĻ¨āĻž, āĻāĻŽāĻŋ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ 2.2 - 3 kOhm āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§āĻ āĻ°āĻžāĻāĻŦāĨ¤
āĻā§āĻāĻžāĻŦā§ āĻāĻŋāĻĒ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻŋ āĻĻā§āĻāĻŋ:
āĻšā§āĻ¯āĻžāĻ, āĻāĻāĻžāĻ¨ā§, āĻā§āĻ¨āĻž āĻāĻāĻ°ā§āĻāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻā§āĻ¤, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¤āĻŦā§ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§ - āĻā§āĻāĻžāĻŦā§ āĻĄā§āĻāĻžāĻļā§āĻā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§āĻāĻžāĻŦā§ āĻŦāĻ¨ā§āĻ§ TLC5940 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯:
âĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒāĻŋāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ SCLK āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻāĻŋ SIN āĻĒāĻŋāĻ¨ āĻĨā§āĻā§ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻā§āĻ XLAT āĻ¸āĻāĻā§āĻ¤ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻĄā§āĻāĻžāĻā§ āĻāĻāĻā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻšāĻ˛ XLAT āĻ¸āĻāĻā§āĻ¤ āĻ¸ā§āĻ¤āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻā§āĻāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻĨāĻŽā§ MSB āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻšā§āĻĄāĻŧāĻāĻž - āĻ˛ā§āĻ¯āĻžāĻ / āĻ˛ā§āĻ¯āĻžāĻ / āĻ˛ā§āĻ¯āĻžāĻāĨ¤
āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¨āĻžāĻĄāĻŧāĻŋ āĻ¨ā§āĻ¤ā§āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻšāĻ¯āĻŧ
MSB āĻĒā§āĻ°āĻĨāĻŽā§ - āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ (āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§) āĻŦāĻŋāĻ āĻāĻāĻŋāĻ¯āĻŧā§āĨ¤
āĻāĻĄāĻŧāĻŋ āĻ¤āĻĨā§āĻ¯ - āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĄā§āĻāĻž āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨ (āĻŦāĻŋāĻ āĻāĻ°ā§)āĨ¤
āĻļāĻŦā§āĻĻ āĻšā§āĻĄāĻŧāĻāĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻŋāĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋ āĻ¨āĻŋāĻā§āĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦ
āĻā§āĻ āĻļāĻŋāĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻ˛āĻāĻĄāĻŋ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ āĻļāĻŋāĻĢāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĨ¤ "āĻļāĻŋāĻĢāĻ" (āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨) āĻ¨āĻžāĻŽā§ - āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻĄā§āĻāĻžāĻ° āĻŦāĻŋāĻ-āĻŦāĻžāĻ-āĻŦāĻŋāĻ āĻ¨āĻĄāĻŧāĻžāĻāĻĄāĻŧāĻž: āĻāĻŋāĻ¤āĻ°ā§ āĻĸā§āĻā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ āĻĒā§āĻ°ā§ āĻā§āĻāĻ¨āĻāĻŋāĻā§ āĻ¸āĻžāĻŽāĻ¨ā§āĻ° āĻĻāĻŋāĻā§ āĻ ā§āĻ˛ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ āĻļāĻŋāĻĢāĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ˛āĻāĻĄāĻŋ-āĻ° āĻŦāĻŋāĻļā§āĻā§āĻāĻ˛ āĻŦā§āĻ˛āĻŋāĻā§āĻāĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ āĻ¨āĻž, āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻāĻāĻŋ āĻļāĻžāĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻļā§āĻ°āĻŽāĻŋāĻāĻĻā§āĻ° āĻĨā§āĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻž āĻŦāĻžāĻĢāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ (āĻšā§āĻĄāĻŧāĻāĻž) āĻšāĻ˛ āĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĄā§āĻ°ā§āĻ¸āĻŋāĻ āĻ°ā§āĻŽ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻā§āĻ°āĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ˛āĻžāĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻšāĻ¯āĻŧ, āĻļāĻžāĻāĻžāĻ°āĻāĻŋ āĻā§āĻ˛ā§ āĻāĻŦāĻ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻāĻā§āĻ° āĻŦā§āĻ¯āĻžāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĨ¤ āĻļāĻŦā§āĻĻ āĻšā§āĻĄāĻŧāĻāĻž āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĄā§āĻ¯āĻžāĻŽā§āĻĒāĻžāĻ° āĻŦā§āĻāĻžāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, DM634-āĻ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ: DAI āĻāĻ¨āĻĒā§āĻāĻāĻŋāĻā§ āĻĻā§āĻ°ā§āĻ° LED āĻāĻ° āĻāĻā§āĻ āĻŦāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨, DCK āĻāĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻāĻžāĻ¨ā§āĻ¨; DAI āĻāĻ¨āĻĒā§āĻāĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨, DCK āĻāĻžāĻ¨ā§āĻ¨; āĻāĻŦāĻ āĻ¤āĻžāĻ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĄāĻŧāĻŋ), āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž LAT āĻāĻžāĻ¨āĨ¤ āĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻŦāĻŋāĻ āĻ ā§āĻ āĻļāĻŦā§āĻĻ), āĻ¤āĻŦā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻ¤ā§āĻā§āĻˇā§āĻŖ SPI āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻžāĻ˛, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° STM32 āĻ āĻĻā§āĻāĻŋ āĻāĻĒāĻŋāĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨ā§āĻ˛ āĻā§āĻ¯āĻžāĻŦāĻ˛ā§āĻ STM32F103
āĻĒāĻ°āĻŋāĻāĻžāĻ¯āĻŧāĻ: STM32 āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°āĻā§āĻ˛āĻŋ Atmega328 āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻ
āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻāĻāĻŋāĻ˛ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻā§āĻ¤āĻŋāĻāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻļāĻā§āĻ¤āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧā§āĻ° āĻāĻžāĻ°āĻŖā§, āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛āĻā§āĻ˛āĻŋ āĻļā§āĻ°ā§āĻ¤ā§ āĻ
āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻāĻĄāĻŧāĻŋāĻ° āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ 8 āĻŽā§āĻāĻžāĻšāĻžāĻ°ā§āĻāĻāĨ¤ āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻ¸āĻāĻŋāĻāĻŽ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻĄ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛ āĻ¯āĻž āĻāĻŋāĻĒāĻāĻŋāĻā§ "āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž" 72 āĻŽā§āĻāĻžāĻšāĻžāĻ°ā§āĻāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻ° āĻāĻžāĻ¨āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ IDE-āĻāĻ° āĻ˛ā§āĻāĻāĻ°āĻž āĻāĻāĻŋāĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻā§āĻ¨, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĄāĻŧāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ (āĻāĻŋāĻ¨ā§āĻ¤ā§
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨: āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ STM32F103C8T6 āĻāĻŋāĻĒāĻāĻŋ āĻŦā§āĻ˛ā§ āĻĒāĻŋāĻ˛ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻā§, āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¨āĻĨāĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
āĻ¤āĻĨā§āĻ¯ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ STM32F103x8 āĻāĻŦāĻ STM32F103xB;āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻā§āĻ°āĻ¨ā§āĻĨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ STM32F103 āĻ˛āĻžāĻāĻ¨ āĻāĻŦāĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻĄā§āĻāĻžāĻļāĻŋāĻā§, āĻāĻŽāĻ°āĻž āĻāĻā§āĻ°āĻšā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
- āĻĒāĻŋāĻ¨āĻāĻāĻ - āĻāĻŋāĻĒ āĻĒāĻŋāĻ¨āĻāĻāĻ - āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻŦā§āĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ;
- āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒ - āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻŋāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒāĨ¤ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ¤ā§ āĻĒā§āĻ°ā§ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻā§āĻ˛āĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¯āĻŧāĨ¤
- āĻĒāĻŋāĻ¨ āĻ¸āĻāĻā§āĻāĻž āĻā§āĻŦāĻŋāĻ˛ - āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻŋāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻž; āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ "āĻ¨ā§āĻ˛ āĻŦāĻĄāĻŧāĻŋ" āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻĒāĻŋāĻ¨ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻš āĻāĻ°āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻāĻŦāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻŽāĻ°āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻŦā§āĻ˛ā§ āĻĒāĻŋāĻ˛ āĻĒāĻŋāĻ¨āĻāĻāĻ āĻā§āĻāĻ˛ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻ āĻāĻŦāĻŋāĻāĻŋ āĻšāĻžāĻ¤ā§ āĻ°āĻžāĻāĻŋ:
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻŦāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŋāĻ˛, āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻž āĻā§āĻā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻāĻŦāĻŋāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻžāĻ - āĻĄā§āĻāĻžāĻļāĻŋāĻ āĻĨā§āĻā§ āĻ¨āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤
āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻļā§āĻāĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĢā§āĻ˛āĻŋ, āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻā§āĻ˛āĻŋ, āĻāĻāĻ¨ āĻĨā§āĻā§ āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ: āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻ¨āĻĒā§āĻ/āĻāĻāĻāĻĒā§āĻ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨, SPI āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨āĻĒā§āĻ āĻāĻāĻāĻĒā§āĻ
Atmega328 āĻ, I/O āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻšāĻ, āĻ¯ā§ āĻāĻžāĻ°āĻŖā§ STM32 āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻ°āĻžāĻā§āĻ°ā§āĻ¯ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¸āĻāĻšāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻžāĻ°āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻā§:
āĻāĻĒā§āĻ¨ āĻĄā§āĻ°ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ, āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻāĻāĻāĻĒā§āĻ, āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻŦāĻŋāĻāĻ˛ā§āĻĒ, āĻāĻĒā§āĻ¨-āĻĄā§āĻ°ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ
"āĻĒā§āĻ˛ āĻ§āĻžāĻā§āĻāĻž" (āĻ§āĻžāĻā§āĻāĻž āĻāĻžāĻ¨āĻž) - āĻāĻ°āĻĄā§āĻāĻ¨ā§ āĻĨā§āĻā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻāĻāĻĒā§āĻ, āĻĒāĻŋāĻ¨āĻāĻŋ āĻāĻā§āĻ āĻŦāĻž āĻ¨āĻŋāĻŽā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ âāĻāĻĒā§āĻ¨ āĻĄā§āĻ°ā§āĻ¨â āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻā§
āĻāĻāĻāĻĒā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ / āĻ¯āĻāĻ¨ āĻĒā§āĻ°ā§āĻ āĻāĻāĻāĻĒā§āĻā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ: / āĻāĻāĻāĻĒā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ: / â āĻā§āĻ˛āĻž āĻĄā§āĻ°ā§āĻ¨ āĻŽā§āĻĄ: āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ "0" N-MOS āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§, āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ "1" āĻšāĻžāĻ-āĻā§āĻĄ āĻŽā§āĻĄā§ āĻĒā§āĻ°ā§āĻ āĻā§āĻĄāĻŧā§ āĻĻā§āĻ¯āĻŧ (P -MOS āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ ) /- āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻŽā§āĻĄ: āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ "0" N-MOS āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§, āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ "1" P-MOS āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§ā§ˇ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ˛āĻž āĻĄā§āĻ°ā§āĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ (āĻā§āĻ˛āĻž āĻ¨āĻ°ā§āĻĻāĻŽāĻž) "āĻĒā§āĻļ-āĻāĻžāĻ¨" āĻĨā§āĻā§ (āĻ§āĻžāĻā§āĻāĻž āĻāĻžāĻ¨āĻž) āĻšāĻ˛ āĻ¯ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻŋāĻ¨ā§ āĻāĻāĻŋ āĻāĻā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž: āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻāĻ¨āĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻāĻā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ā§āĻ° āĻŽā§āĻĄā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ (āĻāĻā§āĻ āĻ°ā§āĻ§, āĻšāĻžāĻ-āĻā§āĻĄ) āĻļā§āĻ¨ā§āĻ¯ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻ¯āĻŧ āĻŽā§āĻĄā§ āĻĒāĻŋāĻ¨ āĻāĻāĻ āĻāĻāĻ°āĻŖ āĻāĻ°ā§, āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻāĻŦāĻ āĻŦā§āĻĻā§āĻ¯ā§āĻ¤āĻŋāĻāĻāĻžāĻŦā§āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻāĻāĻĒā§āĻ āĻŽā§āĻĄā§, āĻĒāĻŋāĻ¨āĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĨ¤ "āĻŦāĻŋāĻāĻ˛ā§āĻĒ"-āĻ āĻāĻāĻŋ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ (9.1.4 āĻĻā§āĻā§āĻ¨):
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°ā§āĻ āĻŦāĻŋāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒāĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§āĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻŋāĻ¨ā§āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻĒāĻŋāĻ¨ āĻ¸āĻāĻā§āĻāĻž āĻĄāĻžāĻāĻžāĻļāĻŋāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻāĻŦāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯ā§ āĻĒāĻŋāĻ¨ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĢāĻžāĻāĻļāĻ¨ āĻĨāĻžāĻāĻ˛ā§ āĻā§ āĻāĻ°āĻŦā§āĻ¨, āĻāĻ¤ā§āĻ¤āĻ°āĻāĻŋ āĻĄā§āĻāĻžāĻļā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻĻāĻā§āĻāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ:
āĻ¯āĻĻāĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻāĻāĻ āĻĒāĻŋāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻāĻĄāĻŧāĻžāĻ¤ā§, āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻā§āĻ˛āĻ āĻāĻ¨āĻžāĻŦāĻ˛ āĻŦāĻŋāĻ (āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ RCC āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻāĻāĻŦāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻāĻāĻĒā§āĻ āĻŽā§āĻĄā§ āĻĒāĻŋāĻ¨ā§āĻ°āĻ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤āĻŋ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻāĻ°ā§āĻāĻāĻŋ āĻļāĻā§āĻ¤āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧāĻāĻžāĻ°ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻā§āĻ˛ā§ āĻ¯āĻžāĻāĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ: āĻāĻŽāĻ°āĻž SPI āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ, āĻ¯āĻžāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻĻā§āĻāĻŋ āĻĒāĻŋāĻ¨ (āĻĄā§āĻāĻž āĻ¸āĻš āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻāĻā§āĻ¤ āĻ¸āĻš) "āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻĢāĻžāĻāĻļāĻ¨" āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤, āĻāĻŦāĻ āĻāĻ°āĻ āĻāĻāĻāĻŋ (LAT) āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ "āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻļ-āĻĒā§āĻ˛"āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻ¸ā§āĻ¨ SPI āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻŋāĨ¤
SPI
āĻāĻ°ā§āĻāĻāĻŋ āĻā§āĻ āĻšā§āĻ¯āĻžāĻ
āĻāĻ¸āĻĒāĻŋāĻāĻ āĻŦāĻž āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ (āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸) āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻā§āĻŦ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¯āĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻŽāĻā§ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻžāĻāĻ°ā§āĻ° āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŽāĻā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¤āĻŋāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ¨āĻž LED āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ (āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻžāĻ 25 āĻĻā§āĻā§āĻ¨)āĨ¤ SPI āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° ("āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°") āĻāĻŦāĻ āĻ¸ā§āĻ˛ā§āĻ ("āĻ¸ā§āĻ˛ā§āĻ") āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ SPI-āĻāĻ° āĻāĻžāĻ°āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŦāĻžāĻ āĻāĻĄāĻŧāĻŋāĻ¤ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§:
- MOSI, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻāĻāĻĒā§āĻ / āĻ¸ā§āĻ˛ā§āĻ āĻāĻ¨āĻĒā§āĻ: āĻāĻ āĻĒāĻŋāĻ¨āĻāĻŋ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄā§ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻ˛ā§āĻ āĻŽā§āĻĄā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§;
- MISO, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ¨āĻĒā§āĻ / āĻ¸ā§āĻ˛ā§āĻ āĻāĻāĻāĻĒā§āĻ: āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§, āĻ¸ā§āĻ˛ā§āĻā§ āĻāĻāĻŋ āĻĻā§āĻ¯āĻŧ;
- SCK, āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻā§āĻ˛āĻ: āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§āĻ° āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻ¸ā§āĻ āĻāĻ°ā§ āĻŦāĻž āĻ¸ā§āĻ˛ā§āĻā§ āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻāĻā§āĻ¤ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ āĻāĻ¤ā§āĻ¯āĻž, beats beats;
- āĻāĻ¸āĻāĻ¸, āĻ¸ā§āĻ˛ā§āĻ āĻ¸āĻŋāĻ˛ā§āĻā§āĻ: āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§, āĻ¸ā§āĻ˛ā§āĻ āĻāĻžāĻ¨ā§ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻŋāĻā§ āĻāĻžāĻ¯āĻŧāĨ¤ STM32-āĻ āĻāĻā§ NSS āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ N = āĻāĻŖāĻžāĻ¤ā§āĻŽāĻ, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻ˛ āĻĨāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻ āĻāĻāĻāĻ¨ āĻĻāĻžāĻ¸ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻĄā§āĻ°ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻŽā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻ˛ā§āĻĒāĨ¤
āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻāĻŋāĻā§āĻ° āĻŽāĻ¤ā§, STM32-āĻ SPI āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻŽā§āĻĻā§āĻ§, āĻ¯āĻž āĻāĻāĻŋāĻā§ āĻŦā§āĻāĻž āĻāĻŋāĻā§āĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° SPI āĻāĻ° āĻ¸āĻžāĻĨā§āĻ āĻ¨āĻ¯āĻŧ, āĻāĻāĻāĻŋ I2S āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§āĻ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻŽāĻŋāĻļā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻŽāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻšāĻ: āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° MOSI āĻāĻŦāĻ SCK āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄā§āĻāĻž āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž 25.3.4 āĻ¸ā§āĻāĻļāĻ¨ā§ āĻ¯āĻžāĻ (āĻšāĻžāĻĢ-āĻĄā§āĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻā§āĻļāĻ¨, āĻšāĻžāĻĢ-āĻĄā§āĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻā§āĻļāĻ¨), āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ 1 āĻāĻĄāĻŧāĻŋ āĻāĻŦāĻ 1 unidirectional āĻĄā§āĻāĻž āĻ¤āĻžāĻ° (1 āĻāĻĄāĻŧāĻŋ āĻāĻŦāĻ 1 āĻāĻāĻŽā§āĻā§ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻŽ):
āĻāĻ āĻŽā§āĻĄā§, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻŦāĻž āĻ°āĻŋāĻ¸āĻŋāĻ-āĻ
āĻ¨āĻ˛āĻŋ āĻŽā§āĻĄā§ SPI āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ / āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻŽā§āĻĄāĻāĻŋ āĻĄā§āĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻŽā§āĻĄā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻĒ: āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻĒāĻŋāĻ¨ā§ āĻĄā§āĻāĻž āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄā§ MOSI āĻŦāĻž āĻ¸ā§āĻ˛ā§āĻ āĻŽā§āĻĄā§ MISO), āĻ¯āĻāĻ¨ āĻ°āĻŋāĻ¸āĻŋāĻ āĻĒāĻŋāĻ¨ (āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ MISO āĻŦāĻž MOSI) āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ I/O āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĒāĻŋāĻ¨ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ Rx āĻŦāĻžāĻĢāĻžāĻ° āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ (āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ, āĻā§āĻ¨ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻĄā§āĻāĻž āĻĨāĻžāĻāĻŦā§ āĻ¨āĻž)āĨ¤
āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤, MISO āĻĒāĻŋāĻ¨āĻāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻ¤ā§ LAT āĻ¸āĻāĻā§āĻ¤āĻāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŋā§ˇ āĻāĻ¸ā§āĻ¨ āĻ¸ā§āĻ˛ā§āĻ āĻ¸āĻŋāĻ˛ā§āĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻŋ, āĻ¯āĻž STM32-āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ¯āĻžāĻāĻŋāĻāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻā§āĻā§āĻĻ 25.3.1 SPI āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖā§ āĻāĻāĻ āĻ¨āĻžāĻŽā§āĻ° āĻ āĻ¨ā§āĻā§āĻā§āĻĻāĻāĻŋ āĻĒāĻĄāĻŧāĻŋ:
NSS āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ (SSM = 1) / āĻ¸ā§āĻ˛ā§āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§āĻ° āĻ¤āĻĨā§āĻ¯ SPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° SSI āĻŦāĻŋāĻā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ NSS āĻĒāĻŋāĻ¨ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻā§āĻĄāĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ.
āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§āĨ¤ āĻāĻŽāĻŋ SPI2 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻļāĻŋāĻā§ āĻāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻā§āĻāĻāĻāĻŋ - āĻŦāĻŋāĻāĻžāĻā§ 3.3 āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒ (āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒ):
āĻāĻā§āĻāĻž, āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ:
#define _SPI2_(mem_offset) (*(volatile uint32_t *)(0x40003800 + (mem_offset)))
āĻāĻŽāĻ°āĻž "āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄā§ SPI āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž" āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸āĻš āĻŦāĻŋāĻāĻžāĻ 25.3.3 āĻā§āĻ˛āĻŋ:
1. SPI_CR2 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ BR[0:1] āĻŦāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻĄāĻŧāĻŋ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻāĻ āĻ¨āĻžāĻŽā§āĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻŋāĻāĻžāĻā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° (āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ āĻĢāĻ¸ā§āĻ) CR1 āĻāĻ° 0x00 āĻāĻā§, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻ āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻŽāĻžāĻ¨ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ 0x0000):
BR āĻŦāĻŋāĻ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ° āĻā§āĻ˛āĻ āĻĄāĻŋāĻāĻžāĻāĻĄāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°ā§, āĻāĻāĻāĻžāĻŦā§ SPI āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻāĻŽāĻ¨ āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ STM32 āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻšāĻŦā§ 72 MHz, LED āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°, āĻ¤āĻžāĻ° āĻĄā§āĻāĻžāĻļāĻŋāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, 25 MHz āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (BR[2:0] = 001)āĨ¤
#define _SPI_CR1 0x00
#define BR_0 0x0008
#define BR_1 0x0010
#define BR_2 0x0020
_SPI2_ (_SPI_CR1) |= BR_0;// pclk/4
2. āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻŦāĻ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻĄāĻŧāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ CPOL āĻāĻŦāĻ CPHA āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ (āĻĒā§āĻˇā§āĻ āĻž 240-āĻ āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻā§āĻ¨)
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻļāĻŋāĻ āĻĒāĻĄāĻŧāĻāĻŋ, āĻāĻŦāĻ āĻ¸ā§āĻāĻŋāĻŽā§āĻ¯āĻžāĻāĻŋāĻā§āĻ¸ā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻā§āĻāĻŋ āĻ¨āĻž, āĻāĻ¸ā§āĻ¨ 704 āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ CPOL āĻāĻŦāĻ CPHA āĻŦāĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻŦāĻŋāĻŦāĻ°āĻŖāĻāĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ (SPI āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖ):
āĻā§āĻ˛āĻ āĻĢā§āĻ āĻāĻŦāĻ āĻĒā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ
SPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° CPOL āĻāĻŦāĻ CPHA āĻŦāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻŽāĻŋāĻ āĻ
āĻ¨ā§āĻĒāĻžāĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ¯āĻžāĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ°āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ CPOL (āĻā§āĻ˛āĻ āĻĒā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ) āĻŦāĻŋāĻ āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻā§āĻ¨ā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ āĻŦāĻŋāĻ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ¸ā§āĻ˛ā§āĻ āĻŽā§āĻĄ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ CPOL āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, SCK āĻĒāĻŋāĻ¨ āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽā§ āĻāĻŽ āĻĨāĻžāĻā§āĨ¤ CPOL āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻāĻ˛ā§, āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ SCK āĻĒāĻŋāĻ¨āĻāĻŋ āĻŦā§āĻļāĻŋ āĻĨāĻžāĻā§āĨ¤
āĻ¯āĻĻāĻŋ CPHA (āĻā§āĻ˛āĻ āĻĢā§āĻ) āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻā§, MSB āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ°ā§āĻŦ āĻšāĻ˛ SCK āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ (CPOL āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻĒāĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻ
āĻĨāĻŦāĻž CPOL āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻāĻ˛ā§ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤)āĨ¤ āĻĄā§āĻāĻž āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻĄāĻŧāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻĒāĻ° latched āĻšāĻ¯āĻŧ. āĻ¯āĻĻāĻŋ CPHA āĻŦāĻŋāĻ āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻšāĻžāĻ āĻŦāĻŋāĻ āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ°ā§āĻŦ āĻšāĻ˛ SCK āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ā§āĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ (CPOL āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻāĻ˛ā§ āĻĒāĻ¤āĻ¨, āĻ
āĻĨāĻŦāĻž CPOL āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻšāĻ˛ā§ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤)āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĄāĻŧāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄā§āĻāĻž āĻ˛ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻā§āĻāĻžāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻžāĻĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨ā§āĻ¤ āĻšāĻ āĻ¯ā§ āĻāĻāĻ¯āĻŧ āĻŦāĻŋāĻāĻā§āĻ āĻļā§āĻ¨ā§āĻ¯ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻžāĻ SCK āĻ¸āĻāĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽ āĻĨāĻžāĻā§āĻ, āĻāĻŦāĻ āĻĄāĻžāĻāĻž āĻĒāĻžāĻ˛āĻ¸ā§āĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšā§āĻ (āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻā§āĻ¨āĨ¤ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻĄā§āĻāĻžāĻļāĻŋāĻ DM634-āĻ)āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ ST āĻĄā§āĻāĻžāĻļāĻŋāĻā§ āĻļāĻŦā§āĻĻāĻāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻāĻŋ: āĻ¸ā§āĻā§āĻ˛āĻŋāĻ¤ā§ "āĻŦāĻŋāĻāĻā§ āĻļā§āĻ¨ā§āĻ¯ā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨" āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļāĻāĻŋ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻāĻā§ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻŦāĻ āĻ¨āĻž āĻāĻāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻ¯ā§āĻŽāĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, Atmega.
3. 8-āĻŦāĻŋāĻ āĻŦāĻž 16-āĻŦāĻŋāĻ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ DFF āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻŽāĻŋ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ 16-āĻŦāĻŋāĻ DM634 āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻžāĻ¤ā§ DM12 āĻāĻ° āĻŽāĻ¤ā§ 633-āĻŦāĻŋāĻ PWM āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ DFF āĻāĻāĻ¤āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ āĻ°ā§āĻĨāĻĒā§āĻ°ā§āĻŖ:
#define DFF 0x0800
_SPI2_ (_SPI_CR1) |= DFF; // 16-bit mode
4. āĻŦā§āĻ˛āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ SPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ LSBFIRST āĻŦāĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
LSBFIRST, āĻāĻ° āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻŦāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ DM634 āĻĒā§āĻ°āĻĨāĻŽā§ āĻĄā§āĻāĻž MSB āĻĒā§āĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ°āĻŋāĻ¸ā§āĻ āĻā§āĻĄāĻŧā§.
5. āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŽā§āĻĄā§, āĻ¯āĻĻāĻŋ āĻāĻ¨āĻāĻ¸āĻāĻ¸ āĻĒāĻŋāĻ¨ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°ā§ āĻŦāĻžāĻāĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨āĻāĻ¸āĻāĻ¸ āĻĒāĻŋāĻ¨āĻāĻŋ āĻāĻāĻā§āĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨āĨ¤ NSS āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŽā§āĻĄā§, SPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ SSM āĻāĻŦāĻ SSI āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ NSS āĻĒāĻŋāĻ¨āĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻšāĻ¤ā§ āĻšāĻ¯āĻŧ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° SSOE āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
NSS āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŽā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻā§āĻ˛ā§ āĻ¯ā§āĻ¤ā§ SSM āĻāĻŦāĻ SSI āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨:
#define SSI 0x0100
#define SSM 0x0200
_SPI2_ (_SPI_CR1) |= SSM | SSI; //enable software control of SS, SS high
6. MSTR āĻāĻŦāĻ SPE āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻāĻ¨āĻāĻ¸āĻāĻ¸ āĻāĻā§āĻ āĻšāĻ˛ā§āĻ āĻ¤āĻžāĻ°āĻž āĻ¸ā§āĻ āĻĨāĻžāĻāĻŦā§)
āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¸āĻĒāĻŋāĻāĻāĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋ:
#define MSTR 0x0004
#define SPE 0x0040
_SPI2_ (_SPI_CR1) |= MSTR; //SPI master
//ĐēĐžĐŗĐ´Đ° вŅĐĩ ĐŗĐžŅОвО, вĐēĐģŅŅĐ°ĐĩĐŧ SPI
_SPI2_ (_SPI_CR1) |= SPE;
SPI āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ¸ā§āĻ¨ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻĢāĻžāĻāĻļāĻ¨ āĻ˛āĻŋāĻāĻŋ āĻ¯āĻž āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°āĻā§ āĻŦāĻžāĻāĻ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ 25.3.3 āĻĒāĻĄāĻŧāĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨ "āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄā§ SPI āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž":
āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ Tx āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤
āĻĄāĻžāĻāĻž āĻŦāĻžāĻāĻ āĻļāĻŋāĻĢāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻšāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻā§āĻ° āĻ¸āĻāĻā§āĻ°āĻŽāĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§āĻĄ (āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŦāĻžāĻ¸ āĻĨā§āĻā§), āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ MOSI āĻĒāĻŋāĻ¨ āĻŽā§āĻĄ, CPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ LSBFIRST āĻŦāĻŋāĻā§āĻ° āĻ¸ā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻž āĻļā§āĻˇ āĻŦāĻŋāĻ āĻāĻāĻŋāĻ¯āĻŧā§āĨ¤ āĻĄāĻžāĻāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§ TXE āĻĒāĻ¤āĻžāĻāĻž āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ Tx āĻŦāĻžāĻĢāĻžāĻ° āĻĨā§āĻā§ āĻļāĻŋāĻĢāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§, āĻāĻŦāĻ CPI_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ TXEIE āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ§āĻž āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤
STM āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§ SPI āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻĻā§āĻˇā§āĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻ āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°ā§āĻāĻŋāĨ¤ Atmega, TXE āĻĒāĻ¤āĻžāĻāĻž (Tx āĻāĻžāĻ˛āĻŋ, Tx āĻāĻžāĻ˛āĻŋ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤) āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻžāĻāĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻāĻ. āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻŦāĻžāĻāĻ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻļāĻŋāĻĢāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻĸā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻāĻ āĻĒāĻ¤āĻžāĻāĻž āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ (āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĸā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻŦāĻ¯āĻŧā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻŦāĻžāĻāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻāĻā§ TXE āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° LED āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻĒāĻ° āĻāĻŽāĻžāĻĻā§āĻ° LAT āĻĒāĻŋāĻ¨ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ вŅĐĩŅ āĻ¤āĻĨā§āĻ¯, āĻ¯ā§āĻŽāĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° TXE āĻĒāĻ¤āĻžāĻāĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻ¤āĻžāĻāĻž āĻĻāĻ°āĻāĻžāĻ°āĨ¤ āĻāĻ¸ā§āĻ¨ 25.3.7 āĻĻā§āĻā§āĻ¨ - "āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ¤āĻžāĻāĻž":
<âĻ>
āĻŦā§āĻ¯āĻ¸ā§āĻ¤ āĻĒāĻ¤āĻžāĻāĻž
BSY āĻĒāĻ¤āĻžāĻāĻž āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻ¤ā§ āĻ˛ā§āĻāĻžāĻ° āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻŦ āĻ¨ā§āĻ)āĨ¤ BSY āĻĒāĻ¤āĻžāĻāĻž SPI āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°ā§:
āĻ¯āĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧ (āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄā§ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ
āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ)
āĻ¯āĻāĻ¨ SPI āĻ
āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻā§ (MODF=1)
āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¨āĻž āĻšāĻ˛ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄā§āĻāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ BSY āĻĒāĻ¤āĻžāĻāĻž āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ āĻŋāĻ āĻāĻā§, āĻāĻāĻž āĻāĻžāĻā§ āĻāĻ¸āĻŦā§āĨ¤ Tx āĻŦāĻžāĻĢāĻžāĻ° āĻā§āĻĨāĻžāĻ¯āĻŧ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, "SPI āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°" āĻĒāĻĄāĻŧā§āĻ¨:
āĻŦāĻŋāĻāĻ¸ 15:0 DR[15:0] āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°
āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻŦāĻž āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§.
āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻĻā§āĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻŦāĻŋāĻāĻā§āĻ¤, āĻāĻāĻāĻŋ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ (āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻŦāĻžāĻĢāĻžāĻ°) āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ (āĻŦāĻžāĻĢāĻžāĻ° āĻā§āĻ°āĻšāĻŖ)āĨ¤ āĻĄāĻžāĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ˛ā§āĻāĻž Tx āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž Rx āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻĨāĻžāĻāĻž āĻŽāĻžāĻ¨āĻāĻŋ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§āĨ¤
āĻāĻžāĻ˛, āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°, āĻ¯ā§āĻāĻžāĻ¨ā§ TXE āĻāĻŦāĻ BSY āĻĒāĻ¤āĻžāĻāĻž āĻ°āĻ¯āĻŧā§āĻā§:
āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻāĻŋ:
#define _SPI_DR 0x0C
#define _SPI_SR 0x08
#define BSY 0x0080
#define TXE 0x0002
void dm_shift16(uint16_t value)
{
_SPI2_(_SPI_DR) = value; //send 2 bytes
while (!(_SPI2_(_SPI_SR) & TXE)); //wait until they're sent
}
āĻ āĻŋāĻ āĻāĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° LED āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ 16 āĻŦāĻžāĻ° āĻĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§:
void sendLEDdata()
{
LAT_low();
uint8_t k = 16;
do
{ k--;
dm_shift16(leds[k]);
} while (k);
while (_SPI2_(_SPI_SR) & BSY); // finish transmission
LAT_pulse();
}
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻžāĻ¨āĻŋ āĻ¨āĻž āĻāĻŋāĻāĻžāĻŦā§ LAT āĻĒāĻŋāĻ¨ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻ¸ā§āĻ¨ I/O-āĻ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻāĨ¤
āĻĒāĻŋāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§āĻ¨
STM32F1-āĻ, āĻĒāĻŋāĻ¨ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦāĻ°āĻ āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĨ¤ āĻāĻāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¯ā§ Atmega āĻĨā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ°ā§ āĻāĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ STM āĻāĻŋāĻĒ āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨āĨ¤ āĻŦāĻŋāĻāĻžāĻ 9.1 GPIO āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻ°ā§āĻŖāĻ¨āĻž:
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ I/O āĻĒā§āĻ°ā§āĻ (GPIO) āĻĻā§āĻāĻŋ 32-āĻŦāĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (GPIOx_CRL āĻāĻŦāĻ GPIOx_CRH), āĻĻā§āĻāĻŋ 32-āĻŦāĻŋāĻ āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (GPIOx_IDR āĻāĻŦāĻ GPIOx_ODR), āĻāĻāĻāĻŋ 32-āĻŦāĻŋāĻ āĻ¸ā§āĻ/āĻ°āĻŋāĻ¸ā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (GPIOx_BSRR), āĻāĻāĻāĻŋ 16-āĻŦāĻŋāĻ āĻ°āĻŋāĻ¸ā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (GPIOx_32BR) āĻāĻŦāĻ āĻāĻāĻāĻŋ GPIOx_XNUMXBR āĻŦāĻŋāĻ āĻŦā§āĻ˛āĻāĻŋāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (GPIOx_LCKR)āĨ¤
āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ, āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻ°āĻ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ, āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°, āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ° 16 āĻāĻŋ āĻĒāĻŋāĻ¨ "āĻāĻžāĻ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻžāĻ° āĻŦāĻŋāĻ" āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. XNUMX āĻĨā§āĻā§ XNUMX āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋ CRL-āĻ āĻāĻŦāĻ āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋ CRH-āĻ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§āĻ āĻĒāĻŋāĻ¨ā§āĻ° āĻŦāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻŋāĻ āĻāĻ°ā§ - āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ āĻ°ā§āĻ§ā§āĻ "āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤" āĻĨāĻžāĻā§āĨ¤
āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻļā§āĻˇā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻāĻŋāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤
āĻ¸ā§āĻ āĻāĻŦāĻ āĻ°āĻŋāĻ¸ā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻļ āĻŽāĻāĻžāĻ° āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻ¨āĻāĻ˛ āĻāĻ°ā§: āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° BSRR-āĻ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ°ā§āĻ° 16 āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻĒāĻŋāĻ¨āĻāĻŋāĻā§ āĻļā§āĻ¨ā§āĻ¯ā§ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻ¨ā§āĻā§āĻ°āĻā§āĻ˛āĻŋ 1 āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§, āĻ āĻĨāĻŦāĻž āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ BRR āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻ¨ā§āĻā§āĻ° 16 āĻŦāĻŋāĻ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻŋāĻ¨ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻāĻ¨ā§āĻĻ. āĻāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻž āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§:
āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻŦāĻž āĻ°āĻŋāĻ¸ā§āĻ
āĻŦāĻŋāĻ āĻ¸ā§āĻ¤āĻ°ā§ GPIOx_ODR āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻžāĻ§āĻž āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž: āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ APB2 āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻ˛āĻŋāĻāĻ¨ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻŦāĻŋāĻā§āĻ° āĻ¸ā§āĻ/āĻ°āĻŋāĻ¸ā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ (GPIOx_BSRR āĻŦāĻž, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ°āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, GPIOx_BRR) āĻāĻāĻāĻŋ "1" āĻ˛āĻŋāĻā§ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ āĻ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĄā§āĻāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻļ āĻ¸ā§āĻĒāĻŋāĻāĻŋāĻ āĻ¨āĻžāĻŽ āĻāĻā§ - IDR = āĻāĻ¨āĻĒā§āĻ āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°, āĻāĻ¨āĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°; ODR= āĻāĻāĻāĻĒā§āĻ āĻĄāĻŋāĻ°ā§āĻāĻļāĻ¨ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°, āĻāĻāĻāĻĒā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§, āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨. āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ SPI āĻāĻ° āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻā§āĻ°āĻšā§, āĻ¯āĻĨāĻž PB13, PB14 āĻāĻŦāĻ PB15, āĻāĻŽāĻ°āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ CRH āĻāĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ:
āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ 20 āĻĨā§āĻā§ 31 āĻ¤āĻŽ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŋāĻā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻĒāĻ°ā§āĻ° āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻāĻŽāĻ°āĻž āĻā§ āĻāĻžāĻ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°ā§āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ°āĻŦ, āĻļā§āĻ§ā§ āĻŦāĻ˛ā§āĻ¨ āĻ¯ā§ MODE āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ (āĻāĻ¨āĻĒā§āĻ āĻāĻāĻ¯āĻŧ āĻŦāĻŋāĻ 0 āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻāĻ˛ā§) āĻāĻŦāĻ āĻĒāĻŋāĻ¨ā§āĻ° āĻāĻ¤āĻŋ (āĻāĻŽāĻžāĻĻā§āĻ° 50MHz āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻ¯āĻŧ āĻĒāĻŋāĻ¨ "1" āĻ), āĻāĻŦāĻ CNF āĻŽā§āĻĄ āĻ¸ā§āĻ āĻāĻ°ā§: āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ "āĻĒā§āĻļ-āĻĒā§āĻļ" - 00, "āĻŦāĻŋāĻāĻ˛ā§āĻĒ" - 10āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻŋāĻ¨ā§āĻ° āĻ¨ā§āĻā§ āĻĨā§āĻā§ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻ āĻĨāĻžāĻā§ ( CNF0), āĻāĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽā§āĻĄā§ āĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻžāĻ¸āĻŽāĻžāĻ¨ āĻāĻ¨āĻĒā§āĻ.
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻŋ āĻāĻ āĻāĻŋāĻĒāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻāĻŋ, āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° āĻāĻāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ MODE āĻāĻŦāĻ CNF āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻāĻāĻ°āĻāĻŽ āĻāĻ āĻŽāĻ¤
#define CNF0_0 0x00000004
#define CNF0_1 0x00000008
#define CNF1_0 0x00000040
#define CNF1_1 0x00000080
#define CNF2_0 0x00000400
#define CNF2_1 0x00000800
#define CNF3_0 0x00004000
#define CNF3_1 0x00008000
#define CNF4_0 0x00040000
#define CNF4_1 0x00080000
#define CNF5_0 0x00400000
#define CNF5_1 0x00800000
#define CNF6_0 0x04000000
#define CNF6_1 0x08000000
#define CNF7_0 0x40000000
#define CNF7_1 0x80000000
#define CNF8_0 0x00000004
#define CNF8_1 0x00000008
#define CNF9_0 0x00000040
#define CNF9_1 0x00000080
#define CNF10_0 0x00000400
#define CNF10_1 0x00000800
#define CNF11_0 0x00004000
#define CNF11_1 0x00008000
#define CNF12_0 0x00040000
#define CNF12_1 0x00080000
#define CNF13_0 0x00400000
#define CNF13_1 0x00800000
#define CNF14_0 0x04000000
#define CNF14_1 0x08000000
#define CNF15_0 0x40000000
#define CNF15_1 0x80000000
#define MODE0_0 0x00000001
#define MODE0_1 0x00000002
#define MODE1_0 0x00000010
#define MODE1_1 0x00000020
#define MODE2_0 0x00000100
#define MODE2_1 0x00000200
#define MODE3_0 0x00001000
#define MODE3_1 0x00002000
#define MODE4_0 0x00010000
#define MODE4_1 0x00020000
#define MODE5_0 0x00100000
#define MODE5_1 0x00200000
#define MODE6_0 0x01000000
#define MODE6_1 0x02000000
#define MODE7_0 0x10000000
#define MODE7_1 0x20000000
#define MODE8_0 0x00000001
#define MODE8_1 0x00000002
#define MODE9_0 0x00000010
#define MODE9_1 0x00000020
#define MODE10_0 0x00000100
#define MODE10_1 0x00000200
#define MODE11_0 0x00001000
#define MODE11_1 0x00002000
#define MODE12_0 0x00010000
#define MODE12_1 0x00020000
#define MODE13_0 0x00100000
#define MODE13_1 0x00200000
#define MODE14_0 0x01000000
#define MODE14_1 0x02000000
#define MODE15_0 0x10000000
#define MODE15_1 0x20000000
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋ B āĻĒā§āĻ°ā§āĻā§ āĻ°āĻ¯āĻŧā§āĻā§ (āĻŦā§āĻ¸ āĻ āĻŋāĻāĻžāĻ¨āĻž - 0x40010C00), āĻā§āĻĄ:
#define _PORTB_(mem_offset) (*(volatile uint32_t *)(0x40010C00 + (mem_offset)))
#define _BRR 0x14
#define _BSRR 0x10
#define _CRL 0x00
#define _CRH 0x04
//иŅĐŋĐžĐģŅСŅĐĩĐŧ ŅŅĐ°ĐŊĐ´Đ°ŅŅĐŊŅĐš SPI2: MOSI ĐŊĐ° B15, CLK ĐŊĐ° B13
//LAT ĐŋŅŅŅŅ ĐąŅĐ´ĐĩŅ ĐŊĐ° ĐŊĐĩиŅĐŋĐžĐģŅСŅĐĩĐŧĐžĐŧ MISO â B14
//ĐžŅиŅĐ°ĐĩĐŧ Đ´ĐĩŅĐžĐģŅĐŊŅĐš йиŅ, ĐžĐŊ ĐŊĐ°Đŧ ŅĐžŅĐŊĐž ĐŊĐĩ ĐŊŅĐļĐĩĐŊ
_PORTB_ (_CRH) &= ~(CNF15_0 | CNF14_0 | CNF13_0 | CNF12_0);
//Đ°ĐģŅŅĐĩŅĐŊĐ°ŅивĐŊŅĐĩ ŅŅĐŊĐēŅии Đ´ĐģŅ MOSI и SCK
_PORTB_ (_CRH) |= CNF15_1 | CNF13_1;
//50 ĐĐŅ, MODE = 11
_PORTB_ (_CRH) |= MODE15_1 | MODE15_0 | MODE14_1 | MODE14_0 | MODE13_1 | MODE13_0;
āĻāĻŦāĻ, āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻĒāĻ¨āĻŋ LAT-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻž āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻž BRR āĻāĻŦāĻ BSRR āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻĻā§āĻŽāĻĄāĻŧā§-āĻŽā§āĻāĻĄāĻŧā§ āĻĻā§āĻŦā§:
/*** LAT pulse â high, then low */
#define LAT_pulse() _PORTB_(_BSRR) = (1<<14); _PORTB_(_BRR) = (1<<14)
#define LAT_low() _PORTB_(_BRR) = (1<<14)
(LAT_low āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĄāĻŧāĻ¤āĻž āĻĻā§āĻŦāĻžāĻ°āĻž, āĻāĻāĻ°āĻāĻŽ āĻāĻāĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻŋāĻ˛, āĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĨāĻžāĻāĻ¤ā§ āĻĻāĻŋāĻ¨)
āĻāĻāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤, āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ STM32, āĻ¤āĻžāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻĻā§āĻ¯ā§ā§ āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧ āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ˛āĻāĻŋāĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻĄāĻŧāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
āĻāĻĄāĻŧāĻŋāĻ° āĻāĻžāĻāĻāĻž āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§, āĻ¤āĻžāĻ°āĻžāĻ āĻāĻĄāĻŧāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¨āĻžāĻŽ RCC āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻāĻāĻŋ āĻā§āĻāĻāĻāĻŋ: āĻāĻāĻŋ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻŦāĻ āĻā§āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ (āĻ°āĻŋāĻ¸ā§āĻ āĻāĻŦāĻ āĻā§āĻ˛āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž)āĨ¤
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻāĻ¸āĻāĻŋāĻāĻŽ-āĻāĻ° āĻ˛ā§āĻā§āĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĄāĻŧāĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻ
āĻāĻļāĻāĻŋ āĻāĻ°ā§āĻā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻ
āĻ¨ā§āĻ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ (āĻāĻŦāĻžāĻ° āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻĻā§āĻŦ
#define _RCC_(mem_offset) (*(volatile uint32_t *)(0x40021000 + (mem_offset)))
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻšāĻ¯āĻŧ āĻ¸ā§āĻ āĻ˛āĻŋāĻā§āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻŋāĻā§ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ āĻĨāĻŦāĻž, āĻāĻ°āĻ āĻāĻžāĻ˛, āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻš āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¯āĻžāĻ¨ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨. āĻāĻŽāĻ°āĻž āĻā§āĻĨāĻžāĻ¯āĻŧ āĻĒāĻžāĻŦ RCC_APB1ENR āĻāĻŦāĻ RCC_APB2ENR:
āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§, āĻŦāĻŋāĻ āĻ¯āĻž SPI2, IOPB (I / O āĻĒā§āĻ°ā§āĻ āĻŦāĻŋ) āĻāĻŦāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĢāĻžāĻāĻļāĻ¨ (AFIO) āĻāĻ° āĻā§āĻ˛āĻāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤
#define _APB2ENR 0x18
#define _APB1ENR 0x1C
#define IOPBEN 0x0008
#define SPI2EN 0x4000
#define AFIOEN 0x0001
//вĐēĐģŅŅĐ°ĐĩĐŧ ŅĐ°ĐēŅиŅОваĐŊиĐĩ ĐŋĐžŅŅĐ° B и Đ°ĐģŅŅ. ŅŅĐŊĐēŅиК
_RCC_(_APB2ENR) |= IOPBEN | AFIOEN;
//вĐēĐģŅŅĐ°ĐĩĐŧ ŅĐ°ĐēŅиŅОваĐŊиĐĩ SPI2
_RCC_(_APB1ENR) |= SPI2EN;
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻā§āĻĄ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻāĻā§āĻāĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž DM634 āĻā§ āĻāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŋ: DAI āĻĨā§āĻā§ PB15, DCK āĻĨā§āĻā§ PB13, LAT āĻĨā§āĻā§ PB14āĨ¤ āĻāĻŽāĻ°āĻž 5 āĻā§āĻ˛ā§āĻ āĻĨā§āĻā§ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°āĻā§ āĻāĻžāĻāĻ¯āĻŧāĻžāĻ, āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
STM8 PWM
STM8 āĻ PWM
āĻ¯āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŽāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻļāĻŋāĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻĒā§āĻ° āĻāĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻ¯āĻŧāĻ¤ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦ, āĻ¯āĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻ¤āĻž āĻŦā§āĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻŦā§āĻ° āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ STM8 āĻāĻ āĻā§āĻŽāĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻā§āĻāĻ¤ āĻāĻŋāĻ˛: āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ STM8S103 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻžāĻāĻ¨āĻŋāĻ āĻŦā§āĻ°ā§āĻĄ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻāĻŋ āĻā§āĻŦ āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ āĻ¸ā§āĻāĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻāĻāĻžāĻ° āĻĒā§āĻ°āĻ˛ā§āĻāĻ¨ āĻāĻ āĻāĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
āĻāĻŋāĻĒāĻ āĻāĻā§
āĻā§āĻ˛āĻāĻŋāĻ āĻāĻŦāĻ I/O
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, STM8 2 MHz āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻāĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤
HSI āĻāĻĄāĻŧāĻŋ (āĻāĻā§āĻ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ)
HSI āĻāĻĄāĻŧāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻŦāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻĄāĻžāĻ° (16 āĻĨā§āĻā§ 1) āĻ¸āĻš āĻāĻāĻāĻŋ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ 8 MHz RC āĻ
āĻ¸āĻŋāĻ˛ā§āĻāĻ° āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻā§āĻ˛āĻ āĻĄāĻŋāĻāĻžāĻāĻĄāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ (CLK_CKDIVR) āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: 8 āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻāĻ āĻ¸āĻš HSI RC āĻ
āĻ¸āĻŋāĻ˛ā§āĻāĻ° āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤ā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§ˇ
āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻļā§āĻā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž, āĻ°ā§āĻĢāĻŽā§āĻ¯āĻžāĻ¨ā§ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻā§āĻāĻā§ āĻĒāĻžāĻ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻ¯ā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻāĻŋ āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°:
#define CLK_CKDIVR *(volatile uint8_t *)0x0050C6
CLK_CKDIVR &= ~(0x18);
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž PWM āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ āĻāĻŦāĻ LED āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ, āĻāĻ¸ā§āĻ¨ āĻĒāĻŋāĻ¨āĻāĻāĻāĻāĻŋ āĻĻā§āĻāĻŋ:
āĻāĻŋāĻĒāĻāĻŋ āĻā§āĻ, āĻāĻāĻ āĻĒāĻŋāĻ¨ā§ āĻ āĻ¨ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻžāĻ¸āĻĒā§āĻ¨ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻ°ā§āĻāĻžāĻāĻžāĻ° āĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ¤ā§ āĻ¯āĻž āĻāĻā§ āĻ¤āĻž āĻšāĻ˛ "āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž", āĻāĻāĻŋ "āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻāĻ" āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻāĻ) - Atmega āĻĢāĻŋāĻāĻ āĻŽāĻ¤ āĻāĻŋāĻā§. āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻ¤āĻāĻžāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖāĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ°āĻŋāĻŦā§āĻ āĻĒāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻ¸āĻāĻŋ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° (āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒ āĻĻāĻŋāĻ¯āĻŧā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻšāĻ, āĻ¯āĻž āĻāĻ āĻŦāĻžāĻāĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒāĻŋāĻ¨āĻāĻāĻ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻāĻāĻāĻĒā§āĻ CH1 āĻāĻŦāĻ CH2 āĻŦāĻ°ā§āĻāĻžāĻāĻžāĻ° āĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ¤ā§ āĻ˛ā§āĻāĻžāĻ¨ā§ āĻāĻā§; STVP-āĻ AFR1 āĻāĻŦāĻ AFR0 āĻŦāĻŋāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻāĻāĻāĻĒā§āĻ CH1 PD4 āĻĨā§āĻā§ PC5-āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻāĻžāĻŦā§, 6āĻāĻŋ āĻĒāĻŋāĻ¨ āĻāĻ˛āĻāĻĄāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻŦā§: āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ PC6, PC7 āĻāĻŦāĻ PC3, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ PC5, PD3 āĻāĻŦāĻ PA3āĨ¤
STM8-āĻ I/O āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž STM32-āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ:
- Atmega-āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĄā§āĻāĻž āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ DDR (āĻĄāĻžāĻāĻž āĻĄāĻŋāĻ°ā§āĻāĻļāĻ¨ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°): 1 = āĻāĻāĻāĻĒā§āĻ;
- āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° CR1, āĻ¯āĻāĻ¨ āĻāĻāĻāĻĒā§āĻ, āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻŽā§āĻĄ (1) āĻŦāĻž āĻā§āĻ˛āĻž āĻĄā§āĻ°ā§āĻ¨ (0) āĻ¸ā§āĻ āĻāĻ°ā§; āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻŋ LED āĻā§ āĻā§āĻ¯āĻžāĻĨā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŋ, āĻāĻŽāĻŋ āĻāĻāĻžāĻ¨ā§ āĻļā§āĻ¨ā§āĻ¯ āĻ°ā§āĻā§āĻāĻŋ;
- āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° CR2 āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤āĻŋ āĻ¸ā§āĻ āĻāĻ°ā§: 1 = 10 MHz
#define PA_DDR *(volatile uint8_t *)0x005002
#define PA_CR2 *(volatile uint8_t *)0x005004
#define PD_DDR *(volatile uint8_t *)0x005011
#define PD_CR2 *(volatile uint8_t *)0x005013
#define PC_DDR *(volatile uint8_t *)0x00500C
#define PC_CR2 *(volatile uint8_t *)0x00500E
PA_DDR = (1<<3); //output
PA_CR2 |= (1<<3); //fast
PD_DDR = (1<<3); //output
PD_CR2 |= (1<<3); //fast
PC_DDR = ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //output
PC_CR2 |= ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //fast
PWM āĻ¸ā§āĻāĻŋāĻ
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ āĻļāĻ°ā§āĻ¤āĻžāĻĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ:
- āĻĒāĻŋāĻĄāĻžāĻŦā§āĻ˛ā§āĻāĻŽ āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ - āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻŋāĻ āĻāĻ°ā§;
- āĻ āĻā§-āĻ°āĻŋāĻ˛ā§āĻĄ, AR - āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻŽāĻžāĻ¨, āĻ¯āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻŖāĻ¨āĻž āĻāĻ°āĻŦā§ (āĻĒāĻžāĻ˛āĻ¸ āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛);
- āĻāĻĒāĻĄā§āĻ āĻāĻā§āĻ¨ā§āĻ, UEV - āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¯āĻž āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻžāĻāĻŽāĻžāĻ°āĻāĻŋ AR-āĻ¤ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§;
- PWM āĻĄāĻŋāĻāĻāĻŋ ââāĻ¸āĻžāĻāĻā§āĻ˛ - PWM āĻĄāĻŋāĻāĻāĻŋ ââāĻāĻā§āĻ°, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ "āĻĄāĻŋāĻāĻāĻŋ ââāĻāĻā§āĻ°" āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ;
- āĻŽāĻžāĻ¨ āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ°/āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ - āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ°/āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ¨, āĻāĻžāĻāĻŽāĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻŋāĻā§ āĻāĻ°āĻŦā§ (PWM āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻāĻā§āĻ¤āĻā§ āĻāĻ˛ā§āĻā§ āĻĻā§āĻ¯āĻŧ);
- āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻŽāĻžāĻ¨ - āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻŽāĻžāĻ¨āĨ¤ āĻŽāĻžāĻ¨ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž, āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ PWM āĻāĻā§āĻ°āĻāĻŋ āĻā§āĻā§ āĻ¯āĻžāĻŦā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻžāĻ°āĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻĄāĻžāĻāĻ¨ā§āĻ° āĻļā§āĻˇā§ āĻĒā§āĻāĻāĻžāĻ˛ā§ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻ¤āĻž āĻŦā§āĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ;
- āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ и āĻā§āĻ¨ā§āĻĻā§āĻ°ā§ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻŽā§āĻĄ â āĻ¸ā§āĻŽāĻžāĻ¨ā§āĻ¤ā§ āĻāĻŦāĻ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻāĻ°āĻŖ, atmelovskie āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻĢāĻžāĻ¸ā§āĻ āĻĒāĻŋāĻĄāĻŦā§āĻ˛āĻŋāĻāĻāĻŽ и āĻĢā§āĻ-āĻ¸āĻ āĻŋāĻ PWM.
- OCiREF, āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¸āĻāĻā§āĻ¤ - āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻāĻā§āĻ¤, āĻāĻ¸āĻ˛ā§, PWM āĻŽā§āĻĄā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĒāĻŋāĻ¨ā§ āĻā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻĒāĻŋāĻ¨āĻāĻāĻ āĻĨā§āĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¸ā§āĻĒāĻˇā§āĻ, āĻĻā§āĻāĻŋ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° PWM āĻā§āĻˇāĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ - āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĨ¤ āĻāĻāĻ¯āĻŧāĻ 16-āĻŦāĻŋāĻ, āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ (āĻŦāĻŋāĻļā§āĻˇāĻ¤, āĻāĻāĻŋ āĻāĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻāĻāĻ¯āĻŧāĻ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻ¯āĻŧāĻā§āĻ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻĻāĻ°āĻŋāĻĻā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ¯āĻžāĻ¤ā§ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻžāĻā§āĻ°āĻŽā§ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻž āĻāĻ¤ā§ āĻ¨ā§āĻāĨ¤ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻ¯ā§ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° PWM āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ° (17.5.7 PWM āĻŽā§āĻĄ) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŦ āĻ¸āĻŽāĻ¯āĻŧ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻžāĻŽāĻ¨ā§ āĻĒāĻŋāĻāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§āĨ¤
STM8-āĻ PWM-āĻāĻ° Atmega PWM-āĻāĻ° āĻĨā§āĻā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§:
āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻāĻ°āĻŖ āĻ¸āĻā§āĻā§ PWM
āĻ¨āĻŋāĻ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
TIM_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ DIR āĻŦāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻĨāĻžāĻāĻ˛ā§ āĻāĻĒ āĻāĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĨāĻŽ PWM āĻŽā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ PWM āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ OCiREF āĻ¯āĻ¤āĻā§āĻˇāĻŖ TIM1_CNT < TIM1_CCRi āĻ¤āĻ¤āĻā§āĻˇāĻŖ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ˛āĻžāĻā§āĨ¤ āĻ¯āĻĻāĻŋ TIM1_CCRi āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ¨āĻāĻŋ āĻ
āĻā§āĻ˛ā§āĻĄ āĻŽāĻžāĻ¨ā§āĻ° (TIM1_ARR āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°) āĻĨā§āĻā§ āĻŦā§āĻļāĻŋ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ OCiREF āĻ¸āĻāĻā§āĻ¤āĻāĻŋ 1 āĻ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤ā§āĻ˛āĻ¨āĻž āĻŽāĻžāĻ¨ 0 āĻšāĻ˛ā§, OCiREF āĻļā§āĻ¨ā§āĻ¯ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧāĨ¤...
āĻ¸āĻŽāĻ¯āĻŧ STM8 āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻĨāĻŽā§ āĻā§āĻ āĻāĻ°ā§ āĻŽāĻžāĻ¨ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¸āĻāĻā§āĻ¤ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§. Atmega, āĻāĻžāĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ shivers, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¤ā§āĻ˛āĻ¨āĻž, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§, āĻ¯āĻāĻ¨ compare value == 0
āĻāĻāĻāĻĒā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻ¯ā§āĻāĻŋāĻā§ āĻā§āĻ¨ā§ āĻ¨āĻž āĻā§āĻ¨ā§āĻāĻžāĻŦā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§ āĻāĻ˛ā§āĻā§ āĻĻāĻŋāĻ¯āĻŧā§)āĨ¤
āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ: 8-āĻŦāĻŋāĻ PWM (AR == 255
), āĻ¨āĻŋāĻ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§ āĻāĻŖāĻ¨āĻž, āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻŦāĻ°āĻžāĻŦāĻ° āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻāĻ°āĻŖāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻŦāĻžāĻ˛ā§āĻŦāĻā§āĻ˛āĻŋ āĻā§āĻ¯āĻžāĻĨā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§, āĻ¤āĻžāĻ PWM 0 āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ (LED āĻ
āĻ¨) āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŽāĻžāĻ¨ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ 1 āĻĒāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒāĻĄāĻŧā§āĻāĻŋ PWM āĻŽā§āĻĄ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻ āĻļāĻŦā§āĻĻāĻā§āĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻā§āĻāĻā§ āĻĒāĻžāĻ (18.6.8 - TIMx_CCMR1):
110: āĻĒā§āĻ°āĻĨāĻŽ PWM āĻŽā§āĻĄ - āĻ¯āĻāĻ¨ āĻ¨āĻŋāĻ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ TIMx_CNT < TIMx_CCR1 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§āĨ¤ āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĨ¤ [āĻāĻ°āĻ āĻ¨āĻĨāĻŋāĻ¤ā§, āĻāĻžāĻāĻŽāĻžāĻ° 1 āĻĨā§āĻā§ āĻā§āĻ˛ āĻāĻĒāĻŋ-āĻĒā§āĻ¸ā§āĻ] 111: āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ PWM āĻŽā§āĻĄ - āĻ¯āĻāĻ¨ āĻ¨ā§āĻā§ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ TIMx_CNT < TIMx_CCR1 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§āĨ¤ āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ˛āĻāĻĄāĻŋāĻā§āĻ˛āĻŋ āĻāĻŽāĻā§-āĻ¤ā§ āĻā§āĻ¯āĻžāĻĨā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŽā§āĻĄāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ (āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻāĻžāĻ¨āĻŋ āĻ¨āĻž)āĨ¤
āĻŦāĻŋāĻ 3 OC1PE: āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄāĻŋāĻ āĻāĻāĻāĻĒā§āĻ 1 āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨
0: TIMx_CCR1-āĻ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸āĻŽāĻ¯āĻŧ TIMx_CCR1 āĻ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
1: TIMx_CCR1 āĻ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻā§āĻˇāĻŽāĨ¤ āĻ°āĻŋāĻĄ/āĻ°āĻžāĻāĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°ā§āĻ¨āĨ¤ TIMx_CCR1 āĻāĻ° āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻžāĻ¯āĻŧāĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
*āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻĒāĻŋāĻĄāĻŦā§āĻ˛āĻŋāĻāĻāĻŽ āĻŽā§āĻĄ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻāĻāĻŋ āĻāĻāĻ āĻ¸āĻāĻā§āĻ¤ āĻŽā§āĻĄā§ āĻāĻā§āĻāĻŋāĻ (OPM āĻŦāĻŋāĻāĻāĻŋ TIMx_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§)āĨ¤
āĻ āĻŋāĻ āĻāĻā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨:
#define TIM2_CCMR1 *(volatile uint8_t *)0x005307
#define TIM2_CCMR2 *(volatile uint8_t *)0x005308
#define TIM2_CCMR3 *(volatile uint8_t *)0x005309
#define PWM_MODE2 0x70 //PWM mode 2, 0b01110000
#define OCxPE 0x08 //preload enable
TIM2_CCMR1 = (PWM_MODE2 | OCxPE);
TIM2_CCMR2 = (PWM_MODE2 | OCxPE);
TIM2_CCMR3 = (PWM_MODE2 | OCxPE);
AR āĻĻā§āĻāĻŋ āĻāĻ-āĻŦāĻŋāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤, āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻšāĻ:
#define TIM2_ARRH *(volatile uint8_t *)0x00530F
#define TIM2_ARRL *(volatile uint8_t *)0x005310
TIM2_ARRH = 0;
TIM2_ARRL = 255;
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°āĻāĻŋ āĻā§āĻŦāĻ˛ āĻ¨ā§āĻā§ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻāĻ°āĻŖ, āĻāĻŋāĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤ āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻĄāĻŋāĻāĻžāĻāĻĄāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, 256āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĄāĻŋāĻāĻžāĻāĻĄāĻžāĻ°āĻāĻŋ TIM2_PSCR āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĻā§āĻāĻŋāĻ° āĻļāĻā§āĻ¤āĻŋ:
#define TIM2_PSCR *(volatile uint8_t *)0x00530E
TIM2_PSCR = 8;
āĻāĻāĻŋ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ° āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ˛ā§ āĻ āĻŦāĻļā§āĻˇ. āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻāĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ°/āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž: āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸āĻŽāĻāĻžāĻŦā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ āĻļāĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ā§āĻ° āĻĒā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ, āĻ¯ā§āĻŽāĻ¨ āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, PWM āĻŽā§āĻĄ 1āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻāĻŋ:
#define TIM2_CCER1 *(volatile uint8_t *)0x00530A
#define TIM2_CCER2 *(volatile uint8_t *)0x00530B
#define CC1E (1<<0) // CCER1
#define CC2E (1<<4) // CCER1
#define CC3E (1<<0) // CCER2
TIM2_CCER1 = (CC1E | CC2E);
TIM2_CCER2 = CC3E;
āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž TIMx_CR1 āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻžāĻāĻŽāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
#define TIM2_CR1 *(volatile uint8_t *)0x005300
TIM2_CR1 |= 1;
āĻāĻ¸ā§āĻ¨ AnalogWrite () āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ āĻ˛āĻŋāĻāĻŋ, āĻ¯āĻž āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻŽāĻžāĻ°ā§ āĻĒā§āĻ°āĻā§āĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻŦā§āĨ¤ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ¨āĻžāĻŽ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ°/āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§: TIM8_CCRxL-āĻ āĻāĻŽ 2 āĻŦāĻŋāĻ āĻāĻŦāĻ TIM2_CCRxH-āĻ āĻāĻā§āĻ āĻŦāĻŋāĻāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž 8-āĻŦāĻŋāĻ PWM āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¯āĻĨā§āĻˇā§āĻ:
#define TIM2_CCR1L *(volatile uint8_t *)0x005312
#define TIM2_CCR2L *(volatile uint8_t *)0x005314
#define TIM2_CCR3L *(volatile uint8_t *)0x005316
void setRGBled(uint8_t r, uint8_t g, uint8_t b)
{
TIM2_CCR1L = r;
TIM2_CCR2L = g;
TIM2_CCR3L = b;
}
āĻŽāĻ¨ā§āĻ¯ā§āĻā§ āĻĒāĻžāĻ āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦā§āĻ¨ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻĒā§āĻ°ā§āĻŖ PWM āĻāĻā§, 100% āĻĢāĻŋāĻ˛ āĻĻāĻŋāĻ¤ā§ āĻ āĻā§āĻˇāĻŽ (āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ 255 āĻŽāĻžāĻ¨, āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ)āĨ¤ āĻāĻ˛āĻāĻĄāĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻā§āĻ¨āĻ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāĻ˛āĻ¨ āĻāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ āĻŽāĻ¨ā§āĻ¯ā§āĻā§ āĻĒāĻžāĻ āĻ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻ āĻŋāĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§ PWM āĻāĻžāĻ āĻāĻ°ā§, āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻ¯āĻžāĻ¨āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻāĻāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ āĻŋāĻ āĻāĻāĻ āĻŦāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻāĻŋ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§ "āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤" āĻ°āĻ¯āĻŧā§ āĻā§āĻā§ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ)āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻĄā§āĻāĻžāĻļā§āĻā§ āĻāĻāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻāĻŦāĻ āĻā§āĻĄāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻāĻā§āĻāĻž, āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻŦāĻŋāĻāĻžāĻāĻā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨, āĻāĻžāĻ°āĻŖāĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ° āĻĻā§āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¨āĻ¯āĻŧ, āĻĻā§āĻāĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ 16-āĻŦāĻŋāĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ āĻāĻžāĻ¯āĻŧ Prescaler āĻāĻā§āĻ и āĻāĻŽ. āĻāĻŽāĻ°āĻž āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°āĻŋ āĻāĻŦāĻ ... āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°?
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻžāĻāĻŽāĻžāĻ° 1 āĻāĻ° āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻŽā§āĻŦāĻ¨ā§āĻ§ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ āĻāĻļāĻāĻŋ āĻĻā§āĻāĻž, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻāĻāĻāĻŋ āĻ¯āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§ āĻ¨ā§āĻāĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻšāĻŦā§ 17.7.30 āĻŦā§āĻ°ā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° (TIM1_BKR), āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ āĻāĻā§:
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨
#define TIM1_BKR *(volatile uint8_t *)0x00526D
TIM1_BKR = (1<<7);
āĻ¯ā§ āĻāĻāĻ¨ āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦ, āĻā§āĻĄ
STM8 āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸
STM8 āĻ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸āĻŋāĻ
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻŽāĻŋāĻ¨āĻŋ-āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻšāĻ˛ PWM āĻŽā§āĻĄā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻ°āĻāĻŋāĻŦāĻŋ āĻāĻ˛āĻāĻĄāĻŋ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°āĻ āĻĻā§āĻāĻžāĻ¨ā§āĨ¤ āĻāĻāĻŋ āĻāĻ˛āĻāĻĄāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ˛āĻāĻĄāĻŋ āĻāĻžāĻ˛ā§ āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻŽāĻ¨ā§ āĻšāĻŦā§ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻžāĻ˛ā§ āĻ°āĻ¯āĻŧā§āĻā§ (āĻĻā§āĻˇā§āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻ¤āĻž, āĻāĻžāĻā§āĻˇā§āĻˇ āĻāĻĒāĻ˛āĻŦā§āĻ§āĻŋāĻ° āĻāĻĄāĻŧāĻ¤āĻž)āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŦāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛āĻžāĻŽ
āĻāĻžāĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
- āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°āĻāĻŋāĻŦāĻŋ āĻāĻ˛āĻāĻĄāĻŋāĻ° āĻ ā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻā§āĻ¯āĻžāĻĨā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻā§āĻ¤ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻŋāĻā§ āĻāĻ˛ā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨;
- PWM āĻāĻā§āĻ°ā§āĻ° āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻāĻŋāĻ˛ā§āĻ¨;
- āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°āĻāĻŋāĻŦāĻŋ āĻāĻ˛āĻāĻĄāĻŋāĻ° āĻ ā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻāĻāĻž āĻā§āĻŦāĻžāĻ˛āĻžāĻ...
āĻāĻžāĻ˛, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ¸āĻāĻ¯ā§āĻ āĻāĻŦāĻ LED āĻāĻ° "āĻāĻāĻ¨āĻŋāĻļāĻ¨" āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻāĻāĻŦā§āĨ¤ āĻāĻžāĻ˛ āĻĒā§āĻ°āĻžāĻ¯āĻŧ. āĻ¯āĻžāĻ āĻšā§āĻ āĻ¨āĻž āĻā§āĻ¨, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻŽāĻžāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§, UEV āĻ āĻĒā§āĻāĻāĻžāĻ˛ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ RGB LED āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ LED āĻ¸ā§āĻ¯ā§āĻāĻāĻŋāĻ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ "āĻāĻŋāĻĄāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻžāĻĒā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻ ā§āĻ¯āĻžāĻ°ā§:
uint8_t colors[8][3];
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ LED āĻāĻ° āĻ°āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¯āĻĨā§āĻˇā§āĻ āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ LED āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻšāĻŦā§
uint8_t cnt;
āĻĄā§āĻŽā§āĻā§āĻ¸
āĻ¸āĻ āĻŋāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ
āĻĻā§āĻā§āĻ¤āĻāĻžāĻŦā§ āĻ¯āĻĨā§āĻˇā§āĻ, CD74HC238 demultiplexerāĨ¤ Demultiplexer - āĻāĻāĻāĻŋ āĻāĻŋāĻĒ āĻ¯āĻž āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ°āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§ <<
. āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻĒāĻŋāĻ¨ā§āĻ° (āĻŦāĻŋāĻ 0, 1 āĻāĻŦāĻ 2) āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¤āĻŋāĻ¨-āĻŦāĻŋāĻ āĻ¨āĻŽā§āĻŦāĻ° X āĻāĻžāĻāĻ¯āĻŧāĻžāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§ āĻāĻāĻāĻĒā§āĻ āĻ¨āĻŽā§āĻŦāĻ°āĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§ (1<<X
) āĻāĻŋāĻĒā§āĻ° āĻ
āĻŦāĻļāĻŋāĻˇā§āĻ āĻāĻ¨āĻĒā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻāĻļāĻž āĻ¸ā§āĻā§āĻ˛ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻāĻŋāĻĒāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻĻāĻāĻ˛āĻā§āĻ¤ āĻĒāĻŋāĻ¨ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽāĻžāĻ¤ā§āĻ āĻ¨āĻ¯āĻŧ, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻĻāĻ°āĻāĻžāĻ° - āĻ¯āĻžāĻ¤ā§ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻžāĻā§āĻ°āĻŽā§ āĻ¸āĻŽā§āĻāĻŦā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻ˛āĻāĻĄāĻŋ āĻāĻžāĻ˛ā§ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŽāĻā§ āĻĒā§āĻĄāĻŧāĻž āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻĒāĻāĻŋāĻ° āĻĻāĻžāĻŽ āĻāĻ āĻĒāĻ¯āĻŧāĻ¸āĻž, āĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻŦāĻžāĻĄāĻŧāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻŋāĻāĻŋā§āĻ¸āĻž āĻāĻŋāĻā§ āĻ°āĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤
CD74HC238 āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ LED āĻāĻ° āĻ
ā§āĻ¯āĻžāĻ¨ā§āĻĄā§ āĻā§āĻ˛ā§āĻā§āĻ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻžāĻā§āĻ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸ā§, āĻāĻāĻŋ P-MOSFET āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ˛āĻžāĻŽā§ āĻā§āĻ˛ā§āĻā§āĻ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻĄā§āĻŽā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻžāĻ°āĻŖāĨ¤ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, 20mA āĻāĻžāĻ¨ā§ āĻĒāĻ°āĻŽ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ°ā§āĻāĻŋāĻ āĻĄā§āĻāĻžāĻļā§āĻā§ āĻĨā§āĻā§
H = āĻāĻā§āĻ āĻā§āĻ˛ā§āĻā§āĻ āĻ¸ā§āĻ¤āĻ°, L = āĻ¨āĻŋāĻŽā§āĻ¨ āĻā§āĻ˛ā§āĻā§āĻ āĻ¸ā§āĻ¤āĻ°, X - āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž
āĻāĻŽāĻ°āĻž E2 āĻāĻŦāĻ E1 āĻā§ āĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄā§, E3, A0, A1 āĻāĻŦāĻ A3 āĻĒāĻŋāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ PD5, PC3, PC4 āĻāĻŦāĻ PC5 āĻāĻ° āĻ¸āĻžāĻĨā§ STM8 āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻŦāĻ āĻāĻā§āĻ āĻāĻāĻ¯āĻŧ āĻ¸ā§āĻ¤āĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻļ-āĻĒā§āĻ˛ āĻĒāĻŋāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻŋāĨ¤
PWM
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻāĻŽāĻžāĻ°ā§ PWM āĻāĻā§āĻ° āĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻĻā§āĻāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¸āĻš:
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻā§āĻ¨ā§āĻ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨ (UEV) āĻ¯āĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ LED āĻāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻĒāĻĄā§āĻ āĻŦāĻŋāĻā§āĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻāĻāĻāĻŋ āĻāĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§
āĻŦāĻžāĻ§āĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨
#define TIM2_IER *(volatile uint8_t *)0x005303
//enable interrupt
TIM2_IER = 1;
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻāĻāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ghosting - āĻĄāĻžāĻ¯āĻŧā§āĻĄā§āĻ° āĻĒāĻ°āĻā§āĻŦā§ āĻāĻāĻžāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻāĻ āĻāĻžāĻ°āĻŖā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻāĻžāĻāĻŽāĻžāĻ°, UEV-āĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻ°ā§, āĻāĻŋāĻ āĻāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻžāĻ° āĻāĻāĻāĻĒā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŋāĻā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻŦāĻŋāĻā§āĻ¨āĻŋāĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§āĻ° LED āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻāĨ¤ āĻāĻāĻŋ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻ˛ā§āĻāĻžāĻ¤ā§ āĻšāĻŦā§ (0 = āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻā§āĻā§āĻŦāĻ˛āĻ¤āĻž, 255 = āĻāĻŋāĻā§āĻ āĻāĻžāĻ˛ā§ āĻ¨ā§āĻ) āĻāĻŦāĻ āĻāĻ°āĻŽ āĻļā§āĻ˛ā§āĻ āĻāĻā§āĻ°ā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ UEV āĻĒāĻ°ā§ āĻāĻāĻāĻŋ PWM āĻāĻā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ LED āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻā§ āĻā§āĻā§āĨ¤
āĻĒā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨:
//set polarity
TIM2_CCER1 |= (CC1P | CC2P);
TIM2_CCER2 |= CC3P;
r, g āĻāĻŦāĻ b 255 āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ˛ā§āĻāĻžāĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ
āĻŦāĻŋāĻā§āĻ¨ā§āĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻ¯ā§, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻāĻŋāĻĒ āĻŽā§āĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻāĻ˛ āĻāĻ°ā§āĨ¤ āĻāĻžāĻāĻŽāĻžāĻ° āĻ¸āĻš āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻŦāĻž āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĒā§āĻ°āĻāĻžāĻŦā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻŦāĻŋāĻā§āĻ¨ āĻāĻā§āĨ¤
āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻĒā§āĻ°āĻĨāĻŽ ST āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒ-āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ, āĻŦāĻžāĻĻā§ main.c
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ°āĻšāĻ¸ā§āĻ¯āĻŽāĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻāĻ¨ā§āĻĄā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ stm8_interrupt_vector.c
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĨ¤ āĻāĻ āĻĢāĻžāĻāĻ˛ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻžāĻ§āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ NonHandledInterrupt
. āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻāĻŋāĻ¤ āĻŦāĻžāĻ§āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĄā§āĻāĻžāĻļā§āĻā§ āĻŦāĻžāĻ§āĻž āĻā§āĻā§āĻāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŖā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻ:
13 TIM2 āĻāĻĒāĻĄā§āĻ/āĻāĻāĻžāĻ°āĻĢā§āĻ˛ā§
14 TIM2 āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ°/āĻ¤ā§āĻ˛āĻ¨āĻž
āĻāĻŽāĻžāĻĻā§āĻ° UEV āĻ LED āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻžāĻ interrupt #13 āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ stm8_interrupt_vector.c
āĻŦāĻŋāĻā§āĻ¨āĻŋāĻ¤ āĻ¨āĻŽā§āĻŦāĻ° 13 (IRQ13) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨:
{0x82, TIM2_Overflow}, /* irq13 */
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ main.h
āĻāĻ āĻŽāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§:
#ifndef __MAIN_H
#define __MAIN_H
@far @interrupt void TIM2_Overflow (void);
#endif
āĻāĻŦāĻ āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ˛āĻŋāĻā§āĻ¨ main.c
:
@far @interrupt void TIM2_Overflow (void)
{
PD_ODR &= ~(1<<5); // вŅŅŅйаĐĩĐŧ Đ´ĐĩĐŧŅĐģŅŅиĐŋĐģĐĩĐēŅĐžŅ
PC_ODR = (cnt<<3); // СаĐŋиŅŅваĐĩĐŧ в Đ´ĐĩĐŧŅĐģŅŅиĐŋĐģĐĩĐēŅĐžŅ ĐŊОвОĐĩ СĐŊĐ°ŅĐĩĐŊиĐĩ
PD_ODR |= (1<<5); // вĐēĐģŅŅĐ°ĐĩĐŧ Đ´ĐĩĐŧŅĐģŅŅиĐŋĐģĐĩĐēŅĐžŅ
TIM2_SR1 = 0; // ŅĐąŅĐ°ŅŅваĐĩĐŧ ŅĐģĐ°Đŗ Update Interrupt Pending
cnt++;
cnt &= 7; // двиĐŗĐ°ĐĩĐŧ ŅŅĐĩŅŅиĐē LED
TIM2_CCR1L = ~colors[cnt][0]; // ĐŋĐĩŅĐĩĐ´Đ°ĐĩĐŧ в ĐąŅŅĐĩŅ иĐŊвĐĩŅŅиŅОваĐŊĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ
TIM2_CCR2L = ~colors[cnt][1]; // Đ´ĐģŅ ŅĐģĐĩĐ´ŅŅŅĐĩĐŗĐž ŅиĐēĐģĐ° ШĐĐ
TIM2_CCR3L = ~colors[cnt][2]; //
return;
}
āĻāĻāĻŋ āĻŦāĻžāĻ§āĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻ
āĻŦāĻļā§āĻˇ. āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ rim
- āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻā§āĻāĻāĻ¤ā§ āĻšāĻŦā§
//enable interrupts
_asm("rim");
āĻāĻ°ā§āĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻ¨āĻāĻžāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ - sim
- āĻŦāĻžāĻ§āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĨ¤ "āĻāĻŋāĻĄāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§" āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻāĻ¨āĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻā§āĻ¨āĻ āĻŦāĻžāĻ§āĻž āĻ
ā§āĻ¯āĻžāĻ°ā§āĻāĻŋāĻā§ āĻ¨āĻˇā§āĻ āĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻĄ -
āĻ āĻ¨ā§āĻ¤āĻ¤ āĻā§āĻ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻ°ā§āĻĨāĻ āĻ˛āĻŋāĻāĻŋāĻ¨āĻŋāĨ¤ āĻāĻŽāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻāĻŦāĻ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻā§āĻļāĻŋ āĻšāĻŦā§, āĻāĻŽāĻŋ āĻ¸āĻŦ āĻāĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§.
āĻāĻ¤ā§āĻ¸: www.habr.com