STM32 рдкреНрд░реЛрдЧреНрд░рд╛рдордпреЛрдЧреНрдп рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ - рдмрд▓реНрд▓реЗ рд╕реЗ рд╕рд╣реА

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

рдЫрд╡рд┐

рд╕рд╛рдордЧреНрд░реА:


  1. рдорд╛рдЗрдХреНрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рд╕рдВрдкрд░реНрдХред
  2. рдЧреИрд░-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреЛрдЧреНрдп рддрд░реНрдХ рддрддреНрд╡реЛрдВ рдкрд░ рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред
  3. STM32 рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ред рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдгред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдорд╢реАрди рд╕реЗ рдЬреЛрдбрд╝рдирд╛ред
  4. рд╕рд╛рдордиреЗ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ - рдПрдбреАрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред
  5. рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП DAC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред



1. рдорд╛рдЗрдХреНрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рд╕рдВрдкрд░реНрдХ


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

рдЯрд╛рд╕реНрдХ 1: рдбреАрдЯреАрдПрдордПрдл рд╕рд┐рдЧреНрдирд▓ рд░рд┐рдХрдЧреНрдирд┐рд╢рди

DTMF рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддреАрди рд╡рд┐рдХрд▓реНрдк рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ), рдЙрдирдХреЗ рд╕рд╛рде - рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕реНрдЯреЛрд░ рдореЗрдВред рдЗрд╕реЗ рдЦрд░реАрджрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рд╣рдо рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ ... рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╢реЙрдХред

рдЕрдм рдпрд╣ рд╕рдм рдорд╢реАрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрд╛рдХрд┐ рдорд╢реАрди рдХреА рдХреНрд░рд┐рдпрд╛рдПрдВ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рджрдмрд╛рдП рдЧрдП рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВ: 2 - рдЖрдЧреЗ, 4 - рдмрд╛рдИрдВ рдУрд░, 6 - рджрд╛рдИрдВ рдУрд░, 8 - рдкреАрдЫреЗред

рдЯрд╛рд╕реНрдХ 2: DTMF рдбрд┐рдХреЛрдбрд░ рд╕реЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ 4 рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ 4 рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдПрдХ рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░ рд╣реИред K155ID10 рдПрдХ рдЦреБрд▓реЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдерд╛ - рдмрд╛рдЗрдирд░реА рдХреЛрдб рдХреЗ рд▓рд┐рдП 4 рдЗрдирдкреБрдЯ, 10 рдЖрдЙрдЯрдкреБрдЯ 0 рд╕реЗ 9 рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддреАрдХ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ "0" рд╣реЛрдЧрд╛, рдФрд░ рдмрд╛рдХреА рдореЗрдВ "1" рд╣реЛрдЧрд╛ред рдЗрд╕ рдбрд┐рдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпрд╢реАрд▓ рдзрд╛рд░рд╛ 80 рдПрдордП (рддрд╛рдкрджреАрдкреНрдд рдмрд▓реНрдм, рд░рд┐рд▓реЗ) рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИ, рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред

рдЯрд╛рд╕реНрдХ 3: рдореЛрдЯрд░реНрд╕, рдПрдЪ-рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдкреЛрд▓рд░рд┐рдЯреА рд░рд┐рд╡рд░реНрд╕рд▓

рдореИрдВрдиреЗ рдмрдЪрдкрди рдореЗрдВ рд▓реЗрдЧреЛ рд╕реЗ рдХрд╛рд░реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рдЬреЛ рдмреИрдЯрд░реА рдХреА рдзреНрд░реБрд╡реАрдпрддрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЪрд▓реЗ рдЧрдП (рдореЗрд░реЗ рдкрд╛рд╕ рдХрднреА рднреА рдореЛрдЯрд░ рдФрд░ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╕рд╛рде рд▓реЗрдЧреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдерд╛)ред рдЕрдм рд╡рдпрд╕реНрдХ рдЦрд┐рд▓реМрдиреЗ рдЦреЗрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдЪ-рдмреНрд░рд┐рдЬ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрдиреНрдирдд - рдЗрдиреНрд╣реАрдВ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рдЦрд░реАрджреЗрдВред рдореИрдВрдиреЗ рд╡рд┐рджреНрдпреБрдд рдЪреБрдореНрдмрдХреАрдп рд░рд┐рд▓реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рдХрд┐рдпрд╛ред рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА (3A рддрдХ рдХрд▓реЗрдХреНрдЯрд░ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд▓рд┐рдП) рдЦрд░реАрджрд╛ NPN рдФрд░ PNP рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ TIP31 C ST рдФрд░ TIP32 C ST, рдиреЗ рдЙрдирд╕реЗ рдЗрд╕ H-Bridge рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕рдиреЗ рдХреЗрд╡рд▓ рдСрди-рдмреЛрд░реНрдб LED рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдореЛрдЯрд░ рдЪрд╛рд▓реВ рдирд╣реАрдВ рд╣реБрдЖ рдмрд▓реЛрдВред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ

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

рдХрд╛рд░реНрдп 4: рдПрдХ рдЯрд╛рдЗрдкрд░рд╛рдЗрдЯрд░ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ

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

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

рд╡рд┐рджреНрдпреБрдд рдЪреБрдореНрдмрдХреАрдп рд░рд┐рд▓реЗ, рджреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ - рдХреНрдпрд╛ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░ рдирд╣реАрдВ рд╣реИ? рдФрд░ рдЖрдЧреЗ!

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

рдЫрд╡рд┐

рдЫрд╡рд┐



2. рдЧреИрд░-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреЛрдЧреНрдп рддрд░реНрдХ рддрддреНрд╡реЛрдВ рдкрд░ рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдорд╢реАрди рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд╡рд╛рд░реА рдХрд░рдиреЗ рдФрд░ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ 1, 3, 7, 9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдЬрдм рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреЛ рд░рд┐рд▓реЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдПрдорд┐рдЯрд░ рд╕реЗ рдбрд╛рдпреЛрдб рдХреЛ рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЕрдм рдпрд╣ рдореБрдЭ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░ "0" рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдкреАрдПрдирдкреА рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕ "рд╢реВрдиреНрдп" рдХреЗ рд╕рд╛рде рдЦреБрд▓реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдирдкреАрдПрди рдерд╛ред

рдХрд╛рд░реНрдп 5: рдорд╢реАрди рдХреЛ 1, 3, 7 рдпрд╛ 9 рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдореБрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП

рдордиреЛрд░рдВрдЬрди / рд╡рд┐рдХрд╛рд╕ / рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ рддрддреНрд╡реЛрдВ 4-I, 4-рдпрд╛, NOT, AND-NOT, OR-NOT, рдФрд░ рдПрдХ рд╕рдордп рдореЗрдВ рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реЙрдЬрд┐рдХ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ DTMF рдбрд┐рдХреЛрдбрд░ рд╕реЗ "рдкрд╛рдВрдЪрд╡рд╛рдВ рдЖрдЙрдЯрдкреБрдЯ" рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ рдЖрд╡рд╢реНрдпрдХ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ (рдФрд░ рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рд▓реЗ) рдХреЛ рдЦреЛрд▓реЗрдЧрд╛ред рд▓реЗрдХрд┐рди! "рдпреВрдирд┐рдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рджрд╢рдорд▓рд╡ рдбрд┐рдХреНрд░рд┐рдкреНрдЯрд░ K155ID10 рдХреБрдЫ рдХреЗ рд╕рд╛рде 2 рд╡реЛрд▓реНрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдХреЗрдд рдХреЛ "рдЗрдХрд╛рдИ" рдирд╣реАрдВ рдорд╛рдирд╛ред 4-I (KR1533) рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдпрджрд┐ рдЖрдк DTMF рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдХреЛрдб рдХреЗ "рдирдВрдЧреЗ" 4 рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд▓рдмреНрдз рддрддреНрд╡реЛрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджрд╢рдорд▓рд╡ рдбрд┐рдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛рд░реНрдп рдХреЛ рдХрдИ рдмрд╛рд░ рдЦрддреНрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдордЬрд╛рдХ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ - рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! (рдмрд┐рд╕реНрддрд░ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рд╕реБрдмрд╣ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

рдпрд╣ рдпрд╛рдж рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░ рд╕рднреА рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдкрд░ рдЕрдкрдирд╛ "рдкреВрд░реНрд╡рд╡рдд" рджреЗрддрд╛ рд╣реИ, рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ ... рдореА ... 4-I рддрддреНрд╡ рдХреЗ рдЗрдирдкреБрдЯ рдХреА рдЪреМрдХрдбрд╝реА, рд╣рдо рд╕рдВрдЦреНрдпрд╛ 1, 2, 3 рдФрд░ "рдпреВрдирд┐рдЯ" рджреЗрддреЗ рд╣реИрдВ; рджреВрд╕рд░реЗ рдкрд░ - 7, 8, 9 рдФрд░ "рдпреВрдирд┐рдЯ"ред рдкрд╣рд▓реЗ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╣рдо "рд╢реВрдиреНрдп" рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ 1, 2 рдпрд╛ 3 рджрдмрд╛рдпрд╛ рдЧрдпрд╛ (рдХрд╛рд░ рдЖрдЧреЗ рдЬрд╛рддреА рд╣реИ), рджреВрд╕рд░реЗ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ - рдЕрдЧрд░ 7, 8, 9 (рдкреАрдЫреЗ)ред рдЕрдиреНрдпрдерд╛, 4-I рддрддреНрд╡ рдХреЗ рджреЛрдиреЛрдВ рдЖрдЙрдЯрдкреБрдЯ "рдпреВрдирд┐рдЯ" рд╣реИрдВред
рдЕрдм рдореБрдбрд╝рддрд╛ рд╣реИред рд╣рдо 5 рд╢реЗрд╖ рддрд░реНрдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯреНрд░рд┐рдХреА рд╕рд░реНрдХрд┐рдЯ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ 4 рдФрд░ 6 рд╕реЗ рдордирд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ (рдХреНрдпреЛрдВ рдореМрдХреЗ рдкрд░ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ?!), рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ 1 рдФрд░ 7 (рдмрд╛рдИрдВ рдУрд░), 3 рдФрд░ 9 (рджрд╛рдИрдВ рдУрд░) рдЕрдХреЗрд▓реЗ рдореЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдЖрд░реЗрдЦ рдХреЛ рдЦреАрдВрдЪрдирд╛ рдмрд╣реБрдд рддрдирд╛рд╡рдкреВрд░реНрдг рдмрдирд╛ред

рдирддреАрдЬрддрди, рдмреЛрд░реНрдб рдкрд░ (рдореБрдЭреЗ рдПрдХ рдФрд░ рдПрдХ рдЦрд░реАрджрдирд╛ рдерд╛), рдПрдХ DTMF рдбрд┐рдХреЛрдбрд░, рд╕рдВрдХреЗрддрдХ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдХреЛрдбрд░, рджрд╢рдорд▓рд╡ рдбрд┐рдХреЛрдбрд░, 4-AND, NOT, 4-OR, OR-NOT, AND-NOT, 4 рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдбрд░, 4 рд░рд┐рд▓реЗред
рдорд╢реАрди 6 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд╕рд╛рдордиреЗ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдмреАрдЪ рдореЗрдВ рдХреИрд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдЧреЛ рднрд╛рдЧреЛрдВ рдХреА рджрдХреНрд╖рддрд╛ рдФрд░ рдХрдо рдореЛрдЯрд░ рд╢рдХреНрддрд┐ рдПрдХ рд╡рд╛рдкрд╕реА рд╡рд╕рдВрдд рдпрд╛ рд░рдмрд░ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред
рд░рд┐рд▓реЗ рдХрднреА-рдХрднреА рдХрдИ рдмрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рд╡реНрдпрд╡рдзрд╛рди?)ред
рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдереАред

рдЫрд╡рд┐

3. STM32 рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛


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

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

CooCox рд╕реЗ CoIDE рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг, рдЬрд┐рд╕рдореЗрдВ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдиреГрддреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдиреБрдЕрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛, рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рдерд╛ред рд╕рдЪ рд╣реИ, рдореИрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ - рдореБрдЭреЗ рдмреЛрд░реНрдб рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдПрд╕рдЯреА-рд▓рд┐рдВрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрджрд╛рддреНрдд рдкрд╛рда 2 рд╕реЗ рд╕реАрдзреЗ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрджреЗрд╢ рдХреА рд▓рдВрдмрд╛рдИ рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рд╕реА рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдПрд▓рдИрдбреА рдиреЗ рдореБрдЭреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд╕реНрдкрд╖реНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ, рдПрдХ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдкреНрд░рдгрд╛рд▓реА, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдЬреЛ рдЦрд░рд╛рдм рдЦреАрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╡рд┐рдзрд┐ рдиреЗ рдЪрд╛рд▓ рдЪрд▓реАред рдмрджрд▓реЗ рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреАрдордд рдЖрдкрдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╣реА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ GND рдкреИрд░ рдХреЛ рдЬрдореАрди рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ 4 рдЙрдВрдЧрд▓реА рдХреА рдмреИрдЯрд░реА рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмрд┐рдЬрд▓реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИ - рдЬрдмрдХрд┐ рд╕рдм рдХреБрдЫ рдЬреАрд╡рд┐рдд рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

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

рдЯрд╛рд╕реНрдХ 6: рджреЗрд░реА

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

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

рдХреЛрдб
int main(void) { unsigned int x=0; char something; while(1) { if (x>5000) { //  }; if (x==10000) { //  .    ,    x. }; if (something==1)//   { x=0; //        } if (x<15000) { x++; }; //  x       0,   x  15000. }; }; 



рдХрд╛рд░реНрдп 7: рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЕрдВрддрд░рд╛рд▓

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛, рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЖрд╡реГрддреНрддрд┐ 24 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдмрдиреА рд░рд╣реАред рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 2400 рд╡реЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЧрд┐рдирддреА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдПрдХ рд░реБрдХрд╛рд╡рдЯ рдкреИрджрд╛ рдХрд░рдХреЗ, рд╣рдо TIM6_DAC_IRQHandler рдлрд╝рдВрдХреНрд╢рди (рдпрд╣ рдПрдХ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд╣реИ) рдХреЛ 100 рд╣рд░реНрдЯреНрдЬ - рдкреНрд░рддреНрдпреЗрдХ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣реАрдВ рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреЛрдб
 unsigned int ti=0; int main(void) { //     6 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); TIM6->PSC = 24000 - 1; //   1000    TIM6->ARR = 10 - 1; //     10-  TIM6->DIER |= TIM_DIER_UIE; //     TIM6->CR1 |= TIM_CR1_CEN; //  ! NVIC_EnableIRQ(TIM6_DAC_IRQn); //  TIM6_DAC_IRQn  }; //   TIM6_DAC void TIM6_DAC_IRQHandler(void) { ti++; TIM6->SR &= ~TIM_SR_UIF; //     } 



рдЗрд╕ рд░реБрдХрд╛рд╡рдЯ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЪрд░ рддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рд╣рд░ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдврд╝рддрд╛ рд╣реИред рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдореЗрдВ рди рдХреЗрд╡рд▓ "рдкрдЪреНрдЪрд░" рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЪрд░ рдЯреАрдЖрдИ рдХреА рддреБрд▓рдирд╛ рдпрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рднреА рд╡рд┐рдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдпрд╣ рд╣рд░ рдмрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдм рдЪрд░ ti рдХреЗ рдорд╛рди рдХреЛ рджреВрд╕рд░реЗ рдЪрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреБрд░рд╛рдиреЗ рдорд╛рди рдХрд╛ рдПрдХ рднрд╛рдЧ рдФрд░ рдирдП рдХрд╛ рдПрдХ рднрд╛рдЧ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реЗрдм рдкрд░ рдкрд╛рдИ рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмреАрдЪ, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛:


рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ред рдЬрдм рддрдХ рдпрд╣ "рдЕрд╕рд╛рдЗрди" рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ ti рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╡реЗрд░рд┐рдПрдмрд▓ sti рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдереЛрдбрд╝рд╛ "рдмреИрдХрд▓реИрд╢" рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╕рдЯреАрдХрддрд╛ рдореМрд▓рд┐рдХ рдирд╣реАрдВ рд╣реИред

 do { sti=ti; } while (ti>1+sti); 


рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдПрд╕рдЯреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрд╕реА рддрд░рд╣ рдХреЗ рдЫреЛрд░реЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЪрд░ рддреА рдХреЗ рдореВрд▓реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

 if (sti==0) { do { ti=0; } while (ti>1); } 


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

рдЯрд╛рд╕реНрдХ 8: рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рдИрдбреА

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

 // - if ((todisp>0) && (sti%10==0)) { if ((sti%(todisp*20+100)<todisp*20) && (sti%20<10)) { GPIOC->BSRR=GPIO_BSRR_BS8; } else { GPIOC->BRR=GPIO_BRR_BR8; }; }; 


рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░, рд╣рдо рдмреЛрд░реНрдб рдкрд░ 3, рдФрд░ рдПрд▓рдИрдбреА рдирдВрдмрд░ 8 рдХреЗ рд▓рд┐рдП рдЪрд░ рдЯреЛрдбрд┐рд╕реНрдкреЗрдб рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреАрди рдмрд╛рд░ рдлреНрд▓реИрд╢ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмреАрдЪ рджреВрд╕рд░рд╛ рдард╣рд░рд╛рд╡ рд╣реЛрдЧрд╛ред рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реНрдЯрд┐ рдХреЛ рд╣рд░ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб (рд╡реЗрд░рд┐рдПрдмрд▓ рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдореБрдЦреНрдп рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЬрдирд┐рдВрдЧ, рд╡реЗрд░рд┐рдПрдмрд▓ x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреБрдгрд╛рдВрдХ рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
 while (1) { do { sti=ti; todisp++; } while (ti>1+sti); todisp--; if ((todisp>0) && (sti%10==0)) { if ((sti%(todisp*20+100)<todisp*20) && (sti%20<10)) { GPIOC->BSRR=GPIO_BSRR_BS8; } else { GPIOC->BRR=GPIO_BRR_BR8; }; }; } 



рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдПрдХ рд░реБрдХрд╛рд╡рдЯ рдХреЗ рдХрд╛рд░рдг, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди sti = ti рд╡рд┐рдлрд▓ рд╣реБрдЖ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рддреБрд▓рдирд╛рддреНрдордХ рд╕рдВрдЪрд╛рд▓рди ti> 1 + sti рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдЬреЛ рддреБрд▓рдирд╛ рдХреЗ рд╕рдордп рд░реБрдХрд╛рд╡рдЯ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), LED рдПрдХ рдХреЗ рд▓рд┐рдП рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдЧрд╛ рдЕрдзрд┐рдХ рдмрд╛рд░ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдпрд╣ рднреА рдорд╛рдк рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреЛрд░реНрдб рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрди рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдПрд▓рдИрдбреА рдХрд┐рддрдиреА рдмрд╛рд░ рдЭрдкрдХреА рд▓реЗрддреА рд╣реИ рдФрд░ рдФрд╕рдд рдЪрдХреНрд░ рд╕рдордп (рд░реБрдХрд╛рд╡рдЯ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрди рд╕рднреА рд╕рд╛рд╡рдзрд╛рдирд┐рдпреЛрдВ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЯрд╛рд╕реНрдХ 9: рдорд╢реАрди рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

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

DTMF рдбрд┐рдХреЛрдбрд░ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рд╣реИред рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ (рдлрд┐рд░ рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЪрдпрдирд┐рдд рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реНрдб) рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ NPN рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3 kOhm) (рдореИрдВрдиреЗ BC547 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛)ред рдПрдорд┐рдЯрд░ - "рдкреНрд▓рд╕" рдХреЛ, рдХрд▓реЗрдХреНрдЯрд░реЛрдВ - рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рд▓реЗ рдХреЗ рдХреЙрдЗрд▓ рдХреЛред рдкрд╛рдБрдЪрд╡рд╛ рд░рд┐рд▓реЗ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдореБрдЦреНрдп рдореЛрдЯрд░ рдХреА рд╢реЙрд░реНрдЯрд┐рдВрдЧ ("рдмреНрд░реЗрдХ" рдореЛрдб) рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддреЛрдВ / рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдореЛрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП "рдкреНрд▓рд╕" рдПрдХ рдЕрд▓рдЧ рдмреИрдЯрд░реА рдкреИрдХ рд╕реЗ рд░рд┐рд▓реЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдореЛрдЯрд░реНрд╕ рджреЛрдиреЛрдВ рдХреЛ рдмрд┐рдЬрд▓реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ 4 рдЙрдВрдЧрд▓реА рдмреИрдЯрд░реА / рд╕рдВрдЪрд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рдорд╛рдорд▓реЛрдВ (2 рдЯреБрдХрдбрд╝реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЙрдирдХреА рд▓рд╛рдЧрдд рдХреЗрд╡рд▓ 40 рд░реВрдмрд▓ рдереА, рдФрд░ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рд╕реНрдХреЙрдЪ рдЯреЗрдк рдФрд░ рдкрдиреНрдиреА рдХреЗ рд╕рд╛рде рд╕рддрд╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ ...

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ DTMF рдбрд┐рдХреЛрдбрд░ рд╕реЗ рддрд╛рд░ рдЖрдЧреЗ / рдкреАрдЫреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд░рд┐рд▓реЗ рдХреЗ рдареАрдХ рдКрдкрд░ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рд░рд┐рд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдкрд░ рдореМрдЬреВрджрд╛ рдкрд╛рд╡рд░ рд╕рд░реНрдЬ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╕рд╣рдкрд╛рдард┐рдпреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рджреМрд░рд╛рди, рд░рд┐рд▓реЗ рд╕рдордп-рд╕рдордп рдкрд░ рджрд░рд╛рд░ рдХрд░рдиреЗ рд▓рдЧреЗ, рдФрд░ рдорд╢реАрди рдиреЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ - рд░рд┐рд▓реЗ рдиреЗ рдЧреИрд░-рд░реЛрдХ рджрд┐рдпрд╛, рдПрдХ рд╕рдорд╛рди рджрд░рд╛рд░ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд┐рдпрд╛ред "рдкреНрд▓рд╕" рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд░рд┐рд▓реЗ рдХреЙрдЗрд▓ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рдбрд╛рдпреЛрдб рдиреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗ рд░рд╣реЗ рд╣реИрдВ - рд╣рд░ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкрд░ рд╣рдо рдЗрдирдкреБрдЯ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдкрд╛рдВрдЪ рдЗрдирдкреБрдЯреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 6 рдмрд╛рд░ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрдЦ рдореЗрдВ рджреЗрд░реА рд▓рдЧрднрдЧ рдЕрдЧреЛрдЪрд░ рд╣реИ, рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ рд╡реЗ рд╣реИрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн!

4. рд╕рд╛рдордиреЗ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ - рдПрдбреАрд╕реА (рдПрдирд╛рд▓реЙрдЧ-рдЯреВ-рдбрд┐рдЬрд┐рдЯрд▓ рдХрдирд╡рд░реНрдЯрд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛


рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рд╕рд╛рдордиреЗ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдпрдВрддреНрд░рд╡рддреН рд░реВрдк рд╕реЗ рдордзреНрдп рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╢реАрди рдХреЛ рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рдореЗрдВ рд╕рд╡рд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!

рдЯрд╛рд╕реНрдХ 10: рд░рд┐рдУрд╕реНрдЯреЗрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ - рдпрджрд┐ рд╡рд╕рдВрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЛрдЯрд░ рдХреЛ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдШреБрдорд╛рдПрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рди рдХрд░реЗрдВред рд╣рд╛рде рдореЗрдВ рдХреЛрдИ рдбрд┐рдЬрд┐рдЯрд▓ рдПрдирдХреЛрдбрд░ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрджреНрднреБрдд 10 khe rheostat рд╣реИ, рдмреЛрд░реНрдб рдореЗрдВ 12-рдмрд┐рдЯ рдПрдбреАрд╕реА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 2) рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдореЗрдВ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдПрдХ рдХреЛрдб рд╣реИред рд░рд┐рдУрд╕реНрддрд╛рдд рдХреЗ рдЫреЛрд░ "рдкреНрд▓рд╕" рдФрд░ "рдорд╛рдЗрдирд╕", рд╕реНрд▓рд╛рдЗрдбрд░ - рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП 1 k╬й рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рд╡реИрд╕реЗ, рдПрдбреАрд╕реА рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдирдореВрдирд╛ рдХреЛрдб ADIDE рд╕рд╣рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ CoIDE рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (CoIDE рдореЗрдВ ADC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ)ред рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЛрдб рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдХрд╛рд░реНрдп 11: рд░рд┐рдУрд╕реНрдЯреЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЖрдиреБрднрд╡рд┐рдХ рд╡рд┐рдзрд┐ 0 рд╕реЗ 4095 рддрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ, рдЬреЛ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреА рд╣реИрдВ, рдЬрдм рд╡реЗ рд╕реАрдзреЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рдореГрдд рдХреНрд╖реЗрддреНрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рднреАрддрд░, рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдмреАрдЪ рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реЛрдЯреЗрд╢рди рдХреЗ рдЕрдзрд┐рдХрддрдо рдХреЛрдг рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдореИрдВрдиреЗ рдореЛрдЯрд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред

рдХреЛрдб
 js= 2500; //    j тАФ     0  4095 () gist=150; //    full=500; //      while (1) { //... if ((x>=max*7) && (inpok)) // inpok  0,         .             . if ((num==1) || (num==4) || (num==7)) // { GPIOC->BRR=GPIO_BRR_BR7; if (j>0+full) { GPIOC->BSRR=GPIO_BSRR_BS6; } else { if (j<0+full-gist) { GPIOC->BRR=GPIO_BRR_BR6; } } } else { GPIOC->BRR=GPIO_BRR_BR1; } if ((num==3) || (num==6) || (num==9)) // { GPIOC->BRR=GPIO_BRR_BR6; if (j<4250-full) { GPIOC->BSRR=GPIO_BSRR_BS7; //   ┬л ┬╗ } else { if (j>4250-full+gist) { GPIOC->BRR=GPIO_BRR_BR7; //   ┬л ┬╗ } } } else { GPIOC->BRR=GPIO_BRR_BR3; } //     if ((num==2) || (num==5) || (num==8)) { if (j<js-gist*3) //       { GPIOC->BRR=GPIO_BRR_BR6; //   ┬л ┬╗ (    ) GPIOC->BSRR=GPIO_BSRR_BS7; //   ┬л ┬╗ } else { if (j>js-gist*2) { GPIOC->BRR=GPIO_BRR_BR7;   ┬л ┬╗ } }; if (j>js+gist*3) { GPIOC->BRR=GPIO_BRR_BR7; GPIOC->BSRR=GPIO_BSRR_BS6; } else { if (j<js+gist*2) { GPIOC->BRR=GPIO_BRR_BR6; } }; }; }; //.. } 



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

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ, рдХреБрдЫ рдХреЛрдб рдХрд┐рд╕реА рдФрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд▓рд┐рдП рдЧрдП рдереЗред

рдорд╢реАрди рдирд┐рдпрдВрддреНрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рдХреЛрдб
 /** ***************************************************************************** * @title ADC_simple.c * @author Claude * @date 2010 Dec 29 * @brief ADC Example, Blink a LED according to ADC value ******************************************************************************* */ #include<stm32f10x_rcc.h> #include<stm32f10x_gpio.h> #include<stm32f10x_adc.h> #include "stm32f10x.h" #include "stm32f10x_conf.h" GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; unsigned int i,j,js,gist,full,ti=0; /* Blink a LED, blink speed is set by ADC value */ int main(void) { unsigned int x,max; unsigned int move[10]; unsigned int oldsti=0,sti=0,time[10],tit=0; unsigned short recheck=5; unsigned char todisp=0,todisp2=0; x=0; unsigned char ji,ju,inp0,inp1,inp2,inp3,inpok,ink,in0,in1,in2,in3,inok,num,oldnum,back; max=250; inp0=0; inp1=0; inp2=0; inp3=0; inpok=0; ink=0; back=0; num=0; void backreset(void) { back=0; for (ju=0;ju<10;ju++) { time[ju]=0; move[ju]=0; } GPIOC->BRR=GPIO_BRR_BR9; } GPIO_InitTypeDef PORT,GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); PORT.GPIO_Pin = (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12| GPIO_Pin_8 | GPIO_Pin_9); PORT.GPIO_Mode = GPIO_Mode_Out_PP; PORT.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init( GPIOC , &PORT); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //   A GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_9 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7); //   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOB, &GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); PORT.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5); PORT.GPIO_Mode = GPIO_Mode_Out_PP; PORT.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init( GPIOA , &PORT); // input of ADC (it doesn't seem to be needed, as default GPIO state is floating input) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ; // that's ADC1 (PA1 on STM32) GPIO_Init(GPIOA, &GPIO_InitStructure); //clock for ADC (max 14MHz --> 72/6=12MHz) RCC_ADCCLKConfig (RCC_PCLK2_Div6); // enable ADC system clock RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); // define ADC config ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; // we work in continuous sampling mode ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_RegularChannelConfig(ADC1,ADC_Channel_1, 1,ADC_SampleTime_28Cycles5); // define regular conversion config ADC_Init ( ADC1, &ADC_InitStructure); //set config of ADC1 // enable ADC ADC_Cmd (ADC1,ENABLE); //enable ADC1 // ADC calibration (optional, but recommended at power on) ADC_ResetCalibration(ADC1); // Reset previous calibration while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); // Start new calibration (ADC must be off at that time) while(ADC_GetCalibrationStatus(ADC1)); // start conversion ADC_Cmd (ADC1,ENABLE); //enable ADC1 ADC_SoftwareStartConvCmd(ADC1, ENABLE); // start conversion (will be endless as we are in continuous mode) // debug information RCC_ClocksTypeDef forTestOnly; RCC_GetClocksFreq(&forTestOnly); //this could be used with debug to check to real speed of ADC clock //     6 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); TIM6->PSC = 24000 - 1; //      1000    // TIM6->ARR = 1000 ; //       TIM6->ARR =4; TIM6->DIER |= TIM_DIER_UIE; //    TIM6->CR1 |= TIM_CR1_CEN; //  ! NVIC_EnableIRQ(TIM6_DAC_IRQn); // TIM6_DAC_IRQn  j= 2500; js=j; gist=150; full=500; if (back==0) { for (ju=0;ju<10;ju++) { time[ju]=0; move[ju]=0; } } while (1) { // adc is in free run, and we get the value asynchronously, this is not a really nice way of doing, but it work! j = ADC_GetConversionValue(ADC1) ; // value from 0 to 4095 /* possible change : * ADC_ContinuousConvMode = DISABLE * then on the infinite loop, something like : * * ADC_SoftwareStartConvCmd(ADC1, ENABLE); // start ONE conversion * while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); // wait end of conversion * j = ADC_GetConversionValue(ADC1) * 500; // get value * */ do { sti=ti; } while (ti>1+sti); //if ((back!=2) || GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)) if (oldsti!=sti) { oldsti=sti; if (ink<recheck) { in0+=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5); in1+=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6); in2+=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7); in3+=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8); inok+=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9); ink++; if (ink==recheck) { ink=0; if ((in0==0 || in0==recheck) && (in1==0 || in1==recheck) && (in2==0 || in2==recheck) && (in3==0 || in3==recheck) && (inok==0 || inok==recheck)) { if (in0==recheck) { in0=1; } if (in1==recheck) { in1=1; } if (in2==recheck) { in2=1; } if (in3==recheck) { in3=1; } if (inok==recheck) { inok=1; } if ((back==2) && (inok==1)) { backreset(); } if ( (back!=2) && (back!=4) && ((inp0!=in0) || (inp1!=in1) || (inp2!=in2) || (inp3!=in3) || (inpok!=inok)) ) { x=0; inp0=in0; inp1=in1; inp2=in2; inp3=in3; inpok=inok; oldnum=num; if (inp0) // -  { if (inp1) { if (inp2) { if (inp3) { num=15; } else { num=7; }; } else { if (inp3) { num=11; } else { num=3; }; }; } else { if (inp2) { if (inp3) { num=13; } else { num=5; }; } else { if (inp3) { num=9; } else { num=1; }; }; }; } else { if (inp1) { if (inp2) { if (inp3) { num=14; } else { num=6; }; } else { if (inp3) { num=10; } else { num=2; }; }; } else { if (inp2) { if (inp3) { num=12; } else { num=4; }; } else { if (inp3) { num=8; } else { num=0; }; }; }; }; }; } in0=0; in1=0; in2=0; in3=0; inok=0; } } }; //  if ((todisp>0) && (sti%10==0)) { if ((sti%(todisp*20+100)<todisp*20) && (sti%20<10)) { GPIOC->BSRR=GPIO_BSRR_BS8; } else { GPIOC->BRR=GPIO_BRR_BR8; }; }; if ((todisp2>0) && (sti%10==2)) { if ((sti%(todisp2*20+100)<todisp2*20) && (sti%20<10)) { GPIOC->BSRR=GPIO_BSRR_BS9; } else { GPIOC->BRR=GPIO_BRR_BR9; }; }; //   if ((num==12)) { switch (back) { case 0: if (inpok) { back=3; }; break; case 3: if (!inpok) { back=4;ji=0;inpok=0;x=0; sti=0; }; break; default: ; } }; if (back==4) { if (inpok==0) { while ((move[ji]<1) && (ji<10)) { ji++; }; if ((ji<10)) { if ((sti>100)) { x=0; sti=0; num=move[ji]; tit=time[ji]; inpok=1; GPIOC->BRR=GPIO_BRR_BR8; GPIOC->BSRR=GPIO_BSRR_BS9; } } else { backreset(); } } else { if (sti>tit) { inpok=0; sti=0; x=0; ji++; GPIOC->BSRR=GPIO_BSRR_BS8; } } }; //   if ((num==10)) { switch (back) { case 0: if (inpok) { back=1; }; break; case 1: if (!inpok) { back=2;ji=9;inpok=0;x=0; sti=0; }; break; default: ; } }; if (back==2) { if (inpok==0) { if ((ji>0) && (move[ji]>0)) { if ((sti>100)) { x=0; sti=0; num=move[ji]; if (num<4) { num+=6; } else { if (num>6) { num-=6; } } tit=time[ji]; inpok=1; GPIOC->BRR=GPIO_BRR_BR8; GPIOC->BSRR=GPIO_BSRR_BS9; } } else { backreset(); } } else { if (sti>tit) { inpok=0; x=0; sti=0; ji--; GPIOC->BSRR=GPIO_BSRR_BS8; } } }; //      "*" if (num==11) { backreset(); } if ((x==3*max)) { GPIOC->BRR=GPIO_BRR_BR12; if ((!inpok) || (num<1) || (num>9)) { GPIOC->BRR=GPIO_BRR_BR6; GPIOC->BRR=GPIO_BRR_BR7; GPIOC->BRR=GPIO_BRR_BR10; GPIOC->BRR=GPIO_BRR_BR11; } if ((back!=2)&&(back!=4)) { in0=inp0; in1=inp1; in2=inp2; in3=inp3; inok=inpok; } if ((move[9]>0)&&(move[9]<10)&&(!inpok)&&(back!=2)&&(back!=4)) { for (ju=0;ju<9;ju++) { time[ju]=time[ju+1]; } time[9]=sti; }; }; if ((x==5*max) && (inpok)) { if ((1<=num) && (num<=9)&&(back!=2)&&(back!=4)) { for (ju=0;ju<9;ju++) //    { move[ju]=move[ju+1]; } move[9]=num; sti=0; // ,       }; if ((num==1) || (num==2) || (num==3)) { GPIOC->BRR=GPIO_BRR_BR10; GPIOC->BSRR=GPIO_BSRR_BS11; GPIOC->BSRR=GPIO_BSRR_BS2; } else { GPIOC->BRR=GPIO_BRR_BR11; }; if ((num==7) || (num==8) || (num==9)) //  { GPIOC->BRR=GPIO_BRR_BR11; GPIOC->BSRR=GPIO_BSRR_BS10; GPIOC->BSRR=GPIO_BSRR_BS2; } else { GPIOC->BRR=GPIO_BRR_BR10; }; }; if ((x>=max*7) && (inpok)) // inpok  0,         .             . { if ((num==1) || (num==4) || (num==7)) // { GPIOC->BRR=GPIO_BRR_BR7; if (j>0+full) { GPIOC->BSRR=GPIO_BSRR_BS6; } else { if (j<0+full-gist) { GPIOC->BRR=GPIO_BRR_BR6; } } } else { GPIOC->BRR=GPIO_BRR_BR1; } if ((num==3) || (num==6) || (num==9)) // { GPIOC->BRR=GPIO_BRR_BR6; if (j<4250-full) { GPIOC->BSRR=GPIO_BSRR_BS7; } else { if (j>4250-full+gist) { GPIOC->BRR=GPIO_BRR_BR7; } } } else { GPIOC->BRR=GPIO_BRR_BR3; } //     if ((num==2) || (num==5) || (num==8)) { if (j<js-gist*3) //       { GPIOC->BRR=GPIO_BRR_BR6; //   ┬л ┬╗ (    ) GPIOC->BSRR=GPIO_BSRR_BS7; //   ┬л ┬╗ } else { if (j>js-gist*2) { GPIOC->BRR=GPIO_BRR_BR7;   ┬л ┬╗ } }; if (j>js+gist*3) { GPIOC->BRR=GPIO_BRR_BR7; GPIOC->BSRR=GPIO_BSRR_BS6; } else { if (j<js+gist*2) { GPIOC->BRR=GPIO_BRR_BR6; } }; }; }; if ((x==max*15)) { if (((num==1) || (num==2) || (num==3) || (num==5) || (num==7) || (num==8) || (num==9))&&(inpok)) //    { GPIOC->BSRR=GPIO_BSRR_BS12; } else { GPIOC->BRR=GPIO_BRR_BR12; } x++; } else { x++; if (x>max*20+300000) { if (!inpok) { GPIOC->BRR=GPIO_BRR_BR2;//   } x=max*20+1; } } //   if (x%80000<40000) { if ((num%3==1) && (inpok) && (num<10)) { GPIOC->BSRR=GPIO_BSRR_BS1; } else { GPIOC->BRR=GPIO_BRR_BR1; } if ((num%3==0) && (inpok) && (num<10)) { GPIOC->BSRR=GPIO_BSRR_BS3; } else { GPIOC->BRR=GPIO_BRR_BR3; } } else { GPIOC->BRR=GPIO_BRR_BR1; GPIOC->BRR=GPIO_BRR_BR3; } if (sti==0) { do { ti=0; } while (ti>1); } }; return 0; }; //   TIM6_DAC void TIM6_DAC_IRQHandler(void) { ti++; TIM6->SR &= ~TIM_SR_UIF; //  UIF } 



рдЫрд╡рд┐

рдЫрд╡рд┐

рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



5. рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП DAC (рдбрд┐рдЬрд┐рдЯрд▓-рд╕реЗ-рдПрдирд╛рд▓реЙрдЧ рдХрдирд╡рд░реНрдЯрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реА рдзреНрд╡рдирд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереАрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЛрдб
 #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" /* ,       DAC    */ const uint16_t sin[32] = { 2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056, 3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909, 599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647}; unsigned char i=0; int main(void) { /*    */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*   */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /*   6 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); /*    */ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); /*        */ TIM6->PSC = 0; TIM6->ARR = 500; TIM6->DIER |= TIM_DIER_UIE; //    TIM6->CR1 |= TIM_CR1_CEN; //  ! NVIC_EnableIRQ(TIM6_DAC_IRQn); // TIM6_DAC_IRQn  /*  DAC1 */ DAC->CR |= DAC_CR_EN1; /*   */ while (1) { } } /*    6 */ void TIM6_DAC_IRQHandler(void) { TIM6->SR &= ~TIM_SR_UIF; //  UIF DAC->DHR12R1=sin[i++]; //      if (i==32) i=0; //     32     } 



рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреЛрдЬрди рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЯреНрдпреВрдирд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд╡реГрддреНрддрд┐: 24,000,000 рд╣рд░реНрдЯреНрдЬред рдЯрд╛рдЗрдорд░ TIM6-> PSC рд╢реВрдиреНрдп рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╣рд░ рд╣рд░рд╛ред рдЯрд╛рдЗрдорд░ TIM6-> ARR 500 рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╡реНрдпрд╡рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ 501 рд╡реЗрдВ рд░реАрд╕реЗрдЯ TIM6-> PSC рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ (24,000,000 рд╣рд░реНрдЯреНрдЬ / 1) / 501, 47,904 рд╣рд░реНрдЯреНрдЬ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рдСрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдХреА рдирдореВрдирд╛ рдЖрд╡реГрддреНрддрд┐ рд╣реИ ред , - mp3 44 100 . , , тАФ 16 12. , .

тАФ , 32 sin. : 47 904 / 32 тЙИ 1 497 . ( 5 ), тАж ┬л!┬╗. F#6, , : 1 497,1 .

рдЫрд╡рд┐

12:

рдХреНрдпреЛрдВрдХрд┐ , - . -, . , 5 , 10 . :
TIM6->PSC = 23; // 1 M
TIM6->ARR = 99; // PSC 23 ARR 99 100 (10 )
, , тАФ 27,5 . , (440 , ), рдЫрд╡рд┐ 11 ( ). ( 12 n ).

: , Excel . , . . , (), . 2 400 . Excel, , :
  1. , 12 ( ).
  2. ( тАФ 27,5 ) (# тАФ +1 , тАФ +2 , тАФ +12 ).
  3. , 10 000 , 10 000 .
  4. .
  5. 0 4095, .


. рдкрд░рд┐рдгрд╛рдо:

 //  const uint16_t noteC[]={ 76,2216,2383,2547,2709,2865,3017,3162,3299,3428,3547,3657,3755,3842,3917, 3979,4028,4064,4086,4095,4090,4070,4038,3991,3932,3860,3775,3679,3572, 3455,3328,3193,3050,2900,2744,2584,2419,2253,2085,1917,1749,1584,1422, 1264,1111,965,826,695,574,462,361,271,194,129,76,38,12,1,3,19,49,92,149, 218,300,393,498,613,738,871,1013,1161,1316,1475,1639,1805,1973 }; 



 //   const uint16_t noteCd[]={ 72,2226,2402,2576,2746,2911,3069,3220,3361,3493,3614,3722,3818,3901,3970, 4024,4063,4087,4095,4088,4065,4027,3974,3907,3825,3730,3622,3503,3372, 3231,3081,2924,2759,2590,2416,2239,2061,1883,1706,1532,1362,1196,1038, 887,744,612,490,381,284,200,130,75,35,10,0,6,27,64,116,182,263,357,464, 583,713,853,1002,1159,1323,1492,1666,1842,2020 }; const uint16_t noteD[]={ 68,2236,2423,2607,2786,2959,3124,3280,3425,3559,3680,3787,3879,3955,4016, 4059,4086,4095,4087,4061,4018,3959,3883,3792,3686,3566,3432,3288,3132, 2968,2795,2617,2433,2246,2057,1869,1682,1498,1318,1145,980,823,677,543, 421,314,221,143,82,38,10,0,7,32,74,133,207,298,403,523,655,799,954,1118, 1291,1469,1652,1839,2028 }; const uint16_t noteDd[]={ 63,2247,2445,2639,2828,3009,3181,3342,3490,3625,3745,3849,3935,4003, 4053,4084,4095,4087,4059,4012,3946,3862,3761,3643,3510,3363,3204, 3034,2854,2666,2473,2275,2076,1876,1678,1483,1293,1111,938,775, 625,488,366,260,171,100,48,14,0,6,31,76,139,220,319,434,565,710, 868,1037,1215,1402,1594,1792,1991 }; //  const uint16_t noteE[]={ 60,2259,2469,2673,2872,3061,3239,3405,3556,3691,3809,3907,3986,4044,4080, 4095,4087,4058,4008,3936,3844,3733,3604,3458,3297,3122,2937,2741,2538, 2330,2119,1907,1697,1490,1289,1097,914,744,588,447,324,219,133,69,25, 3,3,24,68,133,218,323,446,586,742,912,1095,1287,1488,1694,1905 }; const uint16_t noteF[]={ 57,2272,2493,2709,2917,3115,3300,3470,3623,3756,3870,3961,4029,4074, 4094,4089,4060,4007,3930,3831,3710,3569,3410,3234,3044,2842,2631, 2413,2190,1965,1742,1522,1309,1104,911,731,567,421,295,189,106,47, 11,0,14,51,113,199,306,434,582,748,929,1123,1329,1543,1763,1987 }; const uint16_t noteFd[]={ 54,2285,2519,2747,2966,3172,3362,3536,3689,3820,3927,4008, 4063,4091,4092,4065,4010,3929,3823,3693,3540,3367,3177, 2971,2753,2526,2291,2054,1817,1582,1354,1135,929,738,564, 410,279,171,89,33,4,3,29,83,163,269,399,550,723,912,1118,1336,1563,1797,2034 }; const uint16_t noteG[]={ 51,2299,2547,2787,3016,3230,3426,3602,3754,3880,3978,4047,4086, 4094,4071,4017,3934,3822,3683,3519,3333,3127,2905,2670,2426,2176, 1924,1674,1430,1194,972,766,580,416,276,163,79,25,1,8,47,115,213, 338,490,665,861,1075,1303,1543,1791,2042 }; const uint16_t noteGd[]={ 48,2314,2576,2829,3068,3290,3492,3668,3817,3936,4023,4076, 4095,4079,4028,3944,3828,3681,3506,3307,3086,2848,2596, 2335,2069,1802,1540,1286,1045,821,618,440,288,167,78,22, 0,14,61,143,257,401,574,771,991,1228,1479,1739,2005 }; const uint16_t noteA[]={ 45,2330,2606,2872,3123,3353,3558,3734,3878,3987,4059,4092, 4087,4043,3961,3842,3689,3504,3292,3056,2801,2532,2253, 1970,1689,1415,1153,907,684,486,319,184,85,23,0,16,71, 163,292,454,646,865,1107,1366,1639,1919 }; const uint16_t noteAd[]={ 42,2346,2639,2918,3179,3416,3624,3798,3934,4030,4083,4093, 4059,3982,3864,3707,3514,3290,3039,2767,2480,2183,1883, 1587,1301,1031,782,561,371,218,103,30,1,15,72,172,313, 490,700,940,1203,1484,1777 }; const uint16_t noteH[]={ 40,2364,2673,2967,3238,3481,3690,3859,3985,4064,4095,4076, 4009,3894,3736,3536,3301,3036,2747,2441,2126,1809,1498,1199, 922,671,453,274,137,46,3,10,65,168,316,506,732,991,1274,1577,1890 }; const uint16_t noteP[]={ //   1,2048 }; 



, ( 1, 2, 4, 8 ..):

 uint16_t mnote(const uint16_t *pa,char octave) //         { int ii=0; do {ii=i;} while (ii!=i); ii=(octave*ii)%pa[0]; ii=*(pa+ii); return ii; } 


i 100 :

 /*    6 */ void TIM6_DAC_IRQHandler(void) { i++; TIM6->SR &= ~TIM_SR_UIF; //  UIF } 


, . , Nokia:

 uint16_t *melody[]={ noteE,noteP,noteG,noteP, noteA,noteA,noteP,noteE, noteP,noteG,noteP,noteAd, noteA,noteA,noteP,noteP, noteE,noteP,noteG,noteP, noteA,noteA,noteP,noteG, noteP,noteE,noteP,noteP, noteP,noteP,noteP,noteP }; 


, ?..

(), , :

рдХреЛрдб
  uint16_t *melody2[]={ noteH,noteP,noteD,noteP, noteE,noteE,noteP,noteH, noteP,noteD,noteP,noteF, noteE,noteE,noteP,noteP, noteH,noteP,noteD,noteP, noteE,noteE,noteP,noteD, noteP,noteH,noteP,noteP, noteP,noteP,noteP,noteP }; uint16_t *melody3[]={ noteGd,noteP,noteH,noteP, noteCd,noteCd,noteP,noteGd, noteP,noteH,noteP,noteD, noteCd,noteCd,noteP,noteP, noteGd,noteP,noteH,noteP, noteCd,noteCd,noteP,noteH, noteP,noteGd,noteP,noteP, noteP,noteP,noteP,noteP }; 



( ). рд▓реЗрдХрд┐рди! 0 4095, . , , . 100 тАж

.

 #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" int i=0; uint16_t current=0; int loccurrent=0; uint16_t mnote(const uint16_t *pa,char octave) //         { int ii=0; do {ii=i;} while (ii!=i); ii=(octave*ii)%pa[0]; ii=*(pa+ii); return ii; } //      100 ,  0  4095 //  const uint16_t noteC[]={ 76,2216,2383,2547,2709,2865,3017,3162,3299,3428,3547,3657,3755,3842,3917,3979,4028,4064,4086,4095,4090,4070,4038,3991,3932,3860,3775,3679,3572,3455,3328,3193,3050,2900,2744,2584,2419,2253,2085,1917,1749,1584,1422,1264,1111,965,826,695,574,462,361,271,194,129,76,38,12,1,3,19,49,92,149,218,300,393,498,613,738,871,1013,1161,1316,1475,1639,1805,1973 }; //   const uint16_t noteCd[]={ 72,2226,2402,2576,2746,2911,3069,3220,3361,3493,3614,3722,3818,3901,3970,4024,4063,4087,4095,4088,4065,4027,3974,3907,3825,3730,3622,3503,3372,3231,3081,2924,2759,2590,2416,2239,2061,1883,1706,1532,1362,1196,1038,887,744,612,490,381,284,200,130,75,35,10,0,6,27,64,116,182,263,357,464,583,713,853,1002,1159,1323,1492,1666,1842,2020 }; const uint16_t noteD[]={ 68,2236,2423,2607,2786,2959,3124,3280,3425,3559,3680,3787,3879,3955,4016,4059,4086,4095,4087,4061,4018,3959,3883,3792,3686,3566,3432,3288,3132,2968,2795,2617,2433,2246,2057,1869,1682,1498,1318,1145,980,823,677,543,421,314,221,143,82,38,10,0,7,32,74,133,207,298,403,523,655,799,954,1118,1291,1469,1652,1839,2028 }; const uint16_t noteDd[]={ 63,2247,2445,2639,2828,3009,3181,3342,3490,3625,3745,3849,3935,4003,4053,4084,4095,4087,4059,4012,3946,3862,3761,3643,3510,3363,3204,3034,2854,2666,2473,2275,2076,1876,1678,1483,1293,1111,938,775,625,488,366,260,171,100,48,14,0,6,31,76,139,220,319,434,565,710,868,1037,1215,1402,1594,1792,1991 }; //  const uint16_t noteE[]={ 60,2259,2469,2673,2872,3061,3239,3405,3556,3691,3809,3907,3986,4044,4080,4095,4087,4058,4008,3936,3844,3733,3604,3458,3297,3122,2937,2741,2538,2330,2119,1907,1697,1490,1289,1097,914,744,588,447,324,219,133,69,25,3,3,24,68,133,218,323,446,586,742,912,1095,1287,1488,1694,1905 }; const uint16_t noteF[]={ 57,2272,2493,2709,2917,3115,3300,3470,3623,3756,3870,3961,4029,4074,4094,4089,4060,4007,3930,3831,3710,3569,3410,3234,3044,2842,2631,2413,2190,1965,1742,1522,1309,1104,911,731,567,421,295,189,106,47,11,0,14,51,113,199,306,434,582,748,929,1123,1329,1543,1763,1987 }; const uint16_t noteFd[]={ 54,2285,2519,2747,2966,3172,3362,3536,3689,3820,3927,4008,4063,4091,4092,4065,4010,3929,3823,3693,3540,3367,3177,2971,2753,2526,2291,2054,1817,1582,1354,1135,929,738,564,410,279,171,89,33,4,3,29,83,163,269,399,550,723,912,1118,1336,1563,1797,2034 }; const uint16_t noteG[]={ 51,2299,2547,2787,3016,3230,3426,3602,3754,3880,3978,4047,4086,4094,4071,4017,3934,3822,3683,3519,3333,3127,2905,2670,2426,2176,1924,1674,1430,1194,972,766,580,416,276,163,79,25,1,8,47,115,213,338,490,665,861,1075,1303,1543,1791,2042 }; const uint16_t noteGd[]={ 48,2314,2576,2829,3068,3290,3492,3668,3817,3936,4023,4076,4095,4079,4028,3944,3828,3681,3506,3307,3086,2848,2596,2335,2069,1802,1540,1286,1045,821,618,440,288,167,78,22,0,14,61,143,257,401,574,771,991,1228,1479,1739,2005 }; const uint16_t noteA[]={ 45,2330,2606,2872,3123,3353,3558,3734,3878,3987,4059,4092,4087,4043,3961,3842,3689,3504,3292,3056,2801,2532,2253,1970,1689,1415,1153,907,684,486,319,184,85,23,0,16,71,163,292,454,646,865,1107,1366,1639,1919 }; const uint16_t noteAd[]={ 42,2346,2639,2918,3179,3416,3624,3798,3934,4030,4083,4093,4059,3982,3864,3707,3514,3290,3039,2767,2480,2183,1883,1587,1301,1031,782,561,371,218,103,30,1,15,72,172,313,490,700,940,1203,1484,1777 }; const uint16_t noteH[]={ 40,2364,2673,2967,3238,3481,3690,3859,3985,4064,4095,4076,4009,3894,3736,3536,3301,3036,2747,2441,2126,1809,1498,1199,922,671,453,274,137,46,3,10,65,168,316,506,732,991,1274,1577,1890 }; const uint16_t noteP[]={ 1,2048 }; //,   uint16_t *melody[]={ noteE,noteP,noteG,noteP, noteA,noteA,noteP,noteE, noteP,noteG,noteP,noteAd, noteA,noteA,noteP,noteP, noteE,noteP,noteG,noteP, noteA,noteA,noteP,noteG, noteP,noteE,noteP,noteP, noteP,noteP,noteP,noteP }; //  uint16_t *melody2[]={ noteH,noteP,noteD,noteP, noteE,noteE,noteP,noteH, noteP,noteD,noteP,noteF, noteE,noteE,noteP,noteP, noteH,noteP,noteD,noteP, noteE,noteE,noteP,noteD, noteP,noteH,noteP,noteP, noteP,noteP,noteP,noteP }; //  uint16_t *melody3[]={ noteGd,noteP,noteH,noteP, noteCd,noteCd,noteP,noteGd, noteP,noteH,noteP,noteD, noteCd,noteCd,noteP,noteP, noteGd,noteP,noteH,noteP, noteCd,noteCd,noteP,noteH, noteP,noteGd,noteP,noteP, noteP,noteP,noteP,noteP }; int main(void) { GPIO_InitTypeDef PORT; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE); PORT.GPIO_Pin = (GPIO_Pin_9 | GPIO_Pin_8); PORT.GPIO_Mode = GPIO_Mode_Out_PP; PORT.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &PORT); /*    */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*   */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /*   6 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); /*    */ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); TIM6->PSC = 23; // 24000-1  1000 TIM6->ARR = 99; // PSC 23  ARR 99   100  TIM6->DIER |= TIM_DIER_UIE; //    TIM6->CR1 |= TIM_CR1_CEN; //  ! NVIC_EnableIRQ(TIM6_DAC_IRQn); // TIM6_DAC_IRQn  /*  DAC1 */ DAC->CR |= DAC_CR_EN1; /*   */ while (1) { GPIOC->BRR=GPIO_BRR_BR8; GPIOC->BSRR=GPIO_BSRR_BS9; do { loccurrent=i; } while (i!=loccurrent); //  ,    GPIOC->BRR=GPIO_BRR_BR9; GPIOC->BSRR=GPIO_BSRR_BS8; current=(loccurrent/(2000))%32; //   ,  0  31. DAC->DHR12R1=(mnote(melody[current],1)+mnote(melody2[current],1)+mnote(melody[current],2)+mnote(melody2[current],2)+mnote(melody[current],4)+mnote(melody3[current],2))/6; } } /*    6 */ void TIM6_DAC_IRQHandler(void) { i++; TIM6->SR &= ~TIM_SR_UIF; //  UIF } 



рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рд╢реНрди рдЙрдарддрд╛ рд╣реИ: рдХреНрдпрд╛ рдПрдХ рдПрдХрд▓ рд╕рд╛рдЗрдирд╕реЙрдЗрдб рдЕрд╡рдзрд┐ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдЕрджреНрднреБрдд рдзреНрд╡рдирд┐ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ? рд╣рд╛рдВред

рдХрд╛рд░реНрдп 13: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдзреНрд╡рдирд┐ рдЪрд▓рд╛рдПрдБ

, , STM32VLDiscovery, . :
1. Youtube Aston Martin.
2. ( ) .
3. ( Audacity ).
4. . 24 . , 2 , 2-3 -. .
5. WAV-.
6. ( WAV 2 TEXT) тАФ -, . , .
7. 0 4095 Excel. 60 000 Notepad++ Sublime Text, . Excel 30 , тАФ CoIDE тАж
8. .

, over 9000 . :



, , , , , :



рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред

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


All Articles