рд╢реБрд░реБрдЖрдд: рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ 2/3 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдФрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдПрдХ рдЪрд░рдг рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рдХрд░реЗрдВ

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

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

рдРрд╕реЗ рдЙрдкрдХрд░рдг рднреА рд╣реИрдВ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдХрдИ рдШрдВрдЯреЛрдВ рддрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рджрд┐рди рднреА - рд╡рд┐рдорд╛рди, рдСрдЯреЛрдореЛрдмрд╛рдЗрд▓, рдбрд╛рдЙрдирд╣реЛрд▓ рдбрд┐рд╡рд╛рдЗрд╕ (рд╡рд╣рд╛рдВ рд╣рдо рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЯрд╛рдЗрдорд░ рдФрд░ 8-рдмрд┐рдЯ рдЪрд░ рдХрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

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

рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдореИрдВрдиреЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░ 8-рдмрд┐рдЯ рдПрд╡реАрдЖрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 8-рдмрд┐рдЯ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рдФрд░ 4-рдмрд╛рдЗрдЯ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореИрдВ PICs рдФрд░ AT89 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЕрдиреНрдп рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдкрд╛рдардХ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд░реВрдВрдЧрд╛ред

рд▓рд╛рдн - рдХреЛрдб рдЕрддреНрдпрдзрд┐рдХ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИ (рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рд╕рд╛рде 5 рд╡реАрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд░рддрд╛ рд╣реВрдВ); рдХрд╛рдо рдореЗрдВ рд╕рд╛рджрдЧреА (рдХрд╛рдо рдХреЗ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рд░реБрдХрд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ); рдХреЛрдб рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ; рд░реБрдХрд╛рд╡рдЯ рдореЗрдВ - рд╕рдорди рдХрд╛ рдПрдХ рдСрдкрд░реЗрд╢рди (рд▓реЗрдХрд┐рди, рд╣рд╛рд▓рд╛рдВрдХрд┐, 4-рдмрд╛рдЗрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП); рдХреЛрдИ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг рдирд╣реАрдВ - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдЯрд╛рдЗрдорд░ред

рдореБрдЭреЗ рдПрдХ рдЦрд╛рдореА рдорд┐рд▓реА - рдПрдХ рдРрд╕рд╛ рдЙрдкрдпреЛрдЧреА рдФрд░ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдЯрд╛рдЗрдорд░ рд╡реНрдпрд╕реНрдд рд╣реИ ...

рд▓реЗрдЦ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ - рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЕрдореЗрд░рд┐рдХрд╛ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХреА рд╣реИред





рд╕рд┐рджреНрдзрд╛рдВрдд



рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ 12MHz рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рд╕рд╛рде Atmega16A рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВред 0. рдпрд╣ рдЖрда рдЕрдВрдХреЛрдВ рдХрд╛ рдЯрд╛рдЗрдорд░ рд╣реИ - рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХреНрдпреЛрдВ? рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ:

  1. рд╣рдо рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд╕реЗ 12 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдЧреБрдгрд╛рдВрдХ рдХреЛ 8 рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ - рд╣рдореЗрдВ 1500 KHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдорд┐рд▓рддреА рд╣реИ;
  2. рд╣рдо CTC рдореЛрдб рд▓реЗрддреЗ рд╣реИрдВ (рд╕рдВрдпреЛрдЧ рд╣реЛрдиреЗ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ) рдФрд░ 150 рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрдХрд╛рд╡рдЯ рд╕реЗрдЯ рдХрд░реЗрдВ - рд╣рдореЗрдВ 10 KHz рдХреА рдмрд╛рдзрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрд╡реГрддреНрддрд┐ рдорд┐рд▓рддреА рд╣реИ;
  3. рдЗрд╕ рдмрд╣реБрдд рд╣реА рд░реБрдХрд╛рд╡рдЯ рдкрд░ рдЪрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ (рдкреНрд░рддреНрдпреЗрдХ 0.1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ);
  4. рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд 32-рдмрд┐рдЯ рдорд╛рди рд╣реИ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рдмрд╛рдж рдореЗрдВ рдмрд╣ рдЬрд╛рдПрдЧрд╛

    • 429496729.6 рдорд┐рд▓реАрд╕реЗрдХрдВрдб;
    • 42949.7 рд╕реЗрдХрдВрдб;
    • 7158.3 рдорд┐рдирдЯ;
    • 119.3 рдШрдВрдЯреЗ;
    • 4.97 рджрд┐рдиред


рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдорд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рдЯреАрдХрддрд╛ 0.1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИ (рд▓рдЧрднрдЧ) 5 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП (рдпрд╣ рд╕рдЪ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ - рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ)ред рдФрд░ рдЕрдЧрд░ рдЖрдк рдЯрд╛рдЗрдорд░ 0 рдХреЗ рдореВрд▓реНрдп рдХрд╛ рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ - рддреЛ рдпрд╣ рд╣рд░ 2/3 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдореЗрдВ рдмрдврд╝рд╛ рд╣реБрдЖ рд╣реИ - рдЖрдк 0.67 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╣реБрдд рд╣реЛ? рдореЗрд░реЗ рд▓рд┐рдП - рдЖрдБрдЦреЛрдВ рдХреЗ рд▓рд┐рдПред рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ 0.1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:



рдФрд░ рдпрд╣ рд╕рдм рд╢рд╛рдВрддрд┐ рд╕реЗ рдПрдХ ATmega16 рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЗрдВрдЯрд░рдореЗрдбрд▓ рд╣реИ! рдФрд░ рдпрд╣ рдЕрд╕реЗрдВрдмрд▓рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реА! рдФрд░ рдХреЛрдИ рдмрд╛рд╣рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛рдЙрдВрдЯрд░ рдирд╣реАрдВ!

рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?



AVR рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк



AVR рдореЗрдВ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд░реЗрдВ?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рдмрд╛рд╣рд░реА рдЪрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдореИрдВ "DeciMilliSecond" рдХрд╣рддрд╛ рд╣реВрдВ:

//  main.h typedef unsigned long dword; //  32-  extern volatile dword dmsec; // 0.1msec //  main.c volatile dword dmsec;
      
      





рдЬреИрд╕рд╛ рдХрд┐ @ рдиреЛ-рд╕реНрдореЛрдХрд┐рдВрдЧ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдЪрд░ рдХреЛ рдЕрд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗред

рдореИрдВ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рддрд╛ рд╣реВрдБ:

 dmsec = 0;
      
      





рдЕрдЧрд▓рд╛, рдореИрдВрдиреЗ рдЯрд╛рдЗрдорд░ 0 рдХреЗ рдСрдкрд░реЗрд╢рди рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛:

 // .  0 тАУ 0.1msec Timer0_Mode (TIMER_Mode_CTC | TIMER0_Clk_8); Timer0_Cntr (149); Timer_Int (Timer0_Cmp);
      
      





рдЙрд╕реА рд╕рдордп, рдХреБрдЫ MCU_init.h рдореЗрдВ рдореБрдЭреЗ рд╡рд╣ рд╕рдм рдХреБрдЫ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

 //  mcu_init.h #include <mega16.h> // . TIMSK #define Timer0_Cmp (1 << 1) //   0 // . TCCRn #define WGM1 (1 << 3) #define CS1 (1 << 1) // .     0 #define TIMER0_Clk_8 CS1 //  8 // .    #define TIMER_Mode_CTC WGM1 // CTC (  ) // .   #define Timer_Int(Mode) TIMSK = (Mode) #define Timer0_Mode(Mode) TCCR0 = (Mode) #define Timer0_Cntr(Cntr) OCR0 = (Cntr)
      
      





рдареАрдХ рд╣реИ, рддрдм, рдЬрдм рд╕рдВрднрд╡ рд╣реЛ, рдореИрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВ:

 #asm ("SEI")
      
      





рдпрд╣ рд░реБрдХрд╛рд╡рдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░рд▓ рд╣реИ:

 #include <mega16.h> interrupt [TIM0_COMP] Timer0_Compare (void) { ++dmsec; }
      
      





рд╕рдм рдХреБрдЫ, рдЯрд╛рдЗрдорд░ рдХрд╛ рд╡рд░реНрдгрди, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ!



PIC рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк



рдпрд╣рд╛рдБ рд╕рдореНрдорд╛рдирд┐рдд PIC рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдиреЗ рдореБрдЭреЗ рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ:



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



PR2 = 75 - рд╡рд╣ рдорд╛рди рдЬрд┐рд╕ рдкрд░ рдЯрд╛рдЗрдорд░ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдЕрд╡рд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛

T2CON.T2CKPS = 2 - рдкреНрд░реАрд╕реНрдХреВрд▓рд░ 1:16

T2CON.T2OUTPS = 0 - рдкреЛрд╕реНрдЯ-рд╕реНрдХреЗрд▓рд░ рдХреЗ рдмрд┐рдирд╛

T2CON.TMR2ON = рдкрд░ - рдЯрд╛рдЗрдорд░ рдЪрд╛рд▓реВ рд╣реИ



IPR1.TMR2IP = 1 - рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрд╛рдзрд╛

PIR1.TMR2IF = рдмрдВрдж - рдмрд╛рдзрд╛ рдзреНрд╡рдЬ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

PIE1.TMR2IE = рдкрд░ - TMR2 рдФрд░ PR2 рдХреЗ рд╕рдВрдпреЛрдЧ рд╕реЗ рдЕрд╡рд░реЛрдз рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

INTCON.GIE = тАЛтАЛрдСрди - рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдкреНрд░реАрд╕реНрдХреВрд▓рд░ 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ PR2 2 рдЧреБрдирд╛ рдХрдо рд╣реИред

рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдкрд░ 10 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд░реБрдХрд╛рд╡рдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреА (рдлреЙрдХреНрд╕ / 4 рдЯрд╛рдЗрдорд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ) - рдпреВрдПрд╕рдмреА рдлреБрд▓ рд╕реНрдкреАрдб рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЖрд╡реГрддреНрддрд┐ред



рдХреЗ рдЙрдкрдпреЛрдЧ



рдЗрд╕ рдЯрд╛рдЗрдорд░ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ (AVR рдореЗрдВ рдЯрд╛рдЗрдорд░ 0 рдХреЗ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)ред

рдпрд╣рд╛рдБ USB рд╕рд╛рдЭрд╛рдХрд░рдг рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:

 #include "main.h" //   dmsec, next_USB_timeout #include "FT245R.h" //      USB #include "..\Protocol.h" //     -  // ** // **    USB // ** void AnalyzeUSB (void) { #define RECEIVE_BYTE(B) while (!FT245R_IsToRead)\ { if (dmsec > end_analyze) return; }\ B = FT245_ReadByte (); #define RECEIVE_WORD(W) //   2  #define RECEIVE_DWORD(W) //   4  dword end_analyze, d; NewAnalyze: if (!FT245R_IsToRead) //  ? return; end_analyze = dmsec + max_USB_timeout; // timeout    next_USB_timeout = dmsec + MaxSilence_PC_DEV; // timeout    RECEIVE_BYTE (b) //   switch (b) { case SetFullState: RECEIVE_DWORD (d); //   is_initialized = 1; //  ChangeIndicator (); break; } // switch (pack) goto NewAnalyze; #undef RECEIVE_BYTE //  #define #undef RECEIVE_WORD #undef RECEIVE_DWORD }
      
      





рдореИрдХреНрд░реЛ рдлрд╝рдВрдХреНрд╢рди RECEIVE_BYTE, RECEIVE_WORD, RECEIVE_DWORD рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдкрдврд╝реА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЕрдЧрд░ рдХреБрдЫ рджреВрд╕рд░реА рддрд░рдл рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ - рд╡реЙрдЪрдбреЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА! рдФрд░ рдЪрд░ / рдирд┐рд░рдВрддрд░ max_USB_timeout рдХреЗ рд▓рд┐рдП рд╕рднреА рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ 0.1 рдорд┐рд▓реАрд╕реЗрдХреЗрдВрдб рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рдЕрдЧрд▓реЗ next_USB_timeout рдХреЗ "рд╣рд╡рд╛ рдкрд░ рдЪреБрдкреНрдкреА" рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ 1) рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╣реАрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ, 2) рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рддреНрд░реБрдЯрд┐" рдПрд▓рдИрдбреА рд▓рд╛рдЗрдЯреНрд╕)ред рдирд┐рд░рдВрддрд░ / рдЪрд░ MaxSilence_PC_DEV рдЖрдкрдХреЛ рд╡реНрдпрд╛рдкрдХ рд╢реНрд░реЗрдгреА рдореЗрдВ "рдореМрди" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рднрд┐рдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдПрдХ рдЕрдВрд╢ рд╕реЗ рдХрдИ рджрд┐рдиреЛрдВ рддрдХред

рдЗрд╕реА рддрд░рд╣, рдЕрдиреНрдп рд╕рднреА рдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред

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

 #define GetUSec(A,B) { #asm ("CLI"); A = dmsec; B = TCNT0; #asm ("SEI"); } // ** // **         2/3usec // ** dword Difference (dword prev_dmsec, byte prev_usec) { dword cur_dmsec; byte cur_usec; dword dif; // .    GetUSec (cur_dmsec, cur_usec); //   dif = cur_dmsec - prev_dmsec; dif <<= 8; if (cur_usec < prev_usec) dif += 255 + (dword) cur_usec - prev_usec; else dif += cur_usec - prev_usec; return dif; }
      
      





рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдордп рдХреЗ рдкрд┐рдЫрд▓реЗ рдХреНрд╖рдг рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - dmsec рдФрд░ рдЯрд╛рдЗрдорд░ рдХрд╛ рдкрд┐рдЫрд▓рд╛ рдорд╛рди 0ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЧреЗрдЯрд╕реНрдХ рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдирдХрд▓ рдХреЗ рд╕рдордп dmsec рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдорд╛рди рджреВрд╖рд┐рдд рди рд╣реЛрдВред рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред

рдЕрдЧрд▓рд╛, рд╣рдо рд╕рдордп рдХреЗ рдЕрдВрддрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП 2/3 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред

рдЦреИрд░, рд╣рдо рдЗрд╕ рдмрд╛рд░ рд▓реМрдЯрддреЗ рд╣реИрдВред

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



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



рдпрд╣ рдЯрд╛рдЗрдорд░ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрддреНрдпрдВрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд╛рдо рдЖрдПрдЧрд╛ред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:



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



рдпреБрдкреАрдбреА

рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж



рдЬреИрд╕рд╛ рдХрд┐ nerudo рдиреЗ рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕реЗ 2/3 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ рд▓рдЧрднрдЧ 5 рджрд┐рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рдЧрдгрдирд╛рдУрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ ...

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ 12 MHz HC49 / S рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЛ рд╣реА рд▓реЗрдВред KSS рдирд┐рд░реНрдорд╛рддрд╛ рдиреЗ рд╕рдЯреАрдХрддрд╛ -15 рдХрд╛ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ ... + -50 x 1e-6 рдПрдХ рд╣реА рдкреАрдкреАрдПрдо рд╣реИ ред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 1 рд╕реЗрдХрдВрдб рдореЗрдВ 15 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрдПрдЧреАред рддреЛ, 4.97 рджрд┐рдиреЛрдВ рдореЗрдВ рд╣рдореЗрдВ 268 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЕрдЪрд╛рдирдХ рд▓реЗрддреЗ рд╣реИрдВ - рдХрд╣рддреЗ рд╣реИрдВ, 1 рдкреАрдкреАрдПрдо рдХреЗ рд╕рд╛рде, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 18 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдорд┐рд▓рддреЗ рд╣реИрдВред

рдПрдХ рдлрд╡реНрд╡рд╛рд░рд╛ рдирд╣реАрдВ - рдПрдХ рддрд░рдлред рджреВрд╕рд░реА рдУрд░ - рд╣рдо рдПрдХ рдЙрдЪреНрдЪ рдЕрдВрдд рдХреНрд░реЛрдиреЛрдореАрдЯрд░ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ! рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ред рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рджреЛ рд╕реНрдерд╛рдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ 45 рдорд┐рдирдЯ рдореЗрдВ 1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдЯреАрдХрддрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рджреВрд╕рд░реА рдмрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред



All Articles