Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Под систСмой ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π₯отя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ большоС мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² построСния систСм ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько основных способов ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ систСм ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Они ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой объСмом Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ систСмы ΠΈ соотвСтствСнно ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ быстродСйствиС. Рассмотрим эти Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

ΠžΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ прСрывания

Данная систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ прСрывания процСссор Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, располоТСнной ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ фиксированному адрСсу. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ систСмы ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, этот адрСс ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ располагаСтся Π»ΠΈΠ±ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅, Π»ΠΈΠ±ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ адрСсного пространства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ памяти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π’Π‘Π•Π₯ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠžΠ”ΠΠ Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°, Ρ‚ΠΎ такая систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ. Π’ Ρ‚Π°ΠΊΠΎΠΉ систСмС выявлСниС источника ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΡƒΡ‚Π΅ΠΌ опроса состояния Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ установлСнного Ρ„Π»Π°ΠΆΠΊΠ° происходит ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ участку ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π§Π΅ΠΌ большС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… источников ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ‚Π΅ΠΌ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для обнаруТСния источника прСрывания. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ обнаруТСния источника прСрывания называСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ опросом ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π»ΠΈΠ½Π³ΠΎΠΌ ( polling ). Π•Π³ΠΎ нСдостатком являСтся довольно большоС врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° поиск источника прСрывания ΠΈ, ΠΊΠ°ΠΊ слСдствиС, замСдлСнная рСакция систСмы Π½Π° внСшниС события. Π•Π³ΠΎ достоинство – простота Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСрывания

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° внСшниС события, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСрывания. Π’ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… прСрываниях ΠšΠΠ–Π”ΠžΠœΠ£ источнику прСрывания соотвСтствуСт Π‘Π’ΠžΠ™, Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ, адрСс ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ прСрывания.

Π’ΠΎΠΎΠ±Ρ‰Π΅, Π² качСствС Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (адрСс ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, адрСс ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ смСщСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструкции ΠΈ Ρ‚.Π΄.), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания, Π½Π΅ затрачивая Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° поиск источника прСрывания. КакиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ зависит ΠΎΡ‚ способа Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ процСссорС.

Π’ сСмСйствС PIC 18 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ одноуровнСвая (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ совмСстимости с PIC 16), Ρ‚Π°ΠΊ ΠΈ двухуровнСвая систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ совмСстимости ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ прСрывания процСссор ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания ΠΏΠΎ адрСсу 0 x 000008 ΠΈ Π΄Π°Π»Π΅Π΅ всС происходит Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ PIC 16. ΠŸΡ€ΠΈ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмС прСрывания ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° 0 x 000008 ΠΈ 0 x 000018. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ уровня ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ источников прСрывания задаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Бпособ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы прСрывания (ΠΎΠ΄Π½ΠΎ- ΠΈΠ»ΠΈ двухуровнСвая ) Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ разряда Π² рСгистрС управлСния прСрываниями.

Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства AVR Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° вСкторная систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ прСрывания, процСссор сразу ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ прСрывания ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ источника. Π’Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ располоТСны Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… адрСсах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ памяти ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ· сСбя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ соотвСтствуСт числу Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… источников ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сброс Ρ„Π»Π°ΠΆΠΊΠΎΠ² запроса Π½Π° прСрывания происходит автоматичСски ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ прСрывания ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ инструкций для этого Π½Π΅ трСбуСтся.

Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства mcs 51 систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ, Π½ΠΎ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ довольно большой обьСм памяти (8 Π±Π°ΠΉΡ‚), Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ достаточно для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π€Π»Π°Π³ΠΈ прСрывания ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ссли Ρƒ прСрывания Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ источник ΠΈ Π½Π΅ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ссли Ρƒ прСрывания ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ источников. Π’ послСднСм случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ послС выяснСния ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ прСрывания ( ΠΏΠΎΠ»Π»ΠΈΠ½Π³Π° ). Π’Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… адрСсах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ памяти.

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ прСрывания

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… событий Π² систСмС Π½Π΅ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°. Одни события Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹, ΠΈ с ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ. ЕстСствСнно, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этим событиям прСрывания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. ΠŸΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, процСссор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ прСрывания, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ процСсс происходит Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ядра процСссора ΠΈ называСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ опроса ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ( interrupt polling sequence ).

Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… PIC 18 ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмС прСрывания Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ прСрывания с Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ 0 x 000008. Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ прСрывания опрСдСляСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρƒ PIC 16.

Π’ сСмСйствС AVR ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° опроса ТСстко фиксирован ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. Π§Π΅ΠΌ мСньшС адрСс Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ опроса прСрывания Π΅ΠΌΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ.

Π’ сСмСйствС MSP 430 ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ опроса Ρ‚Π°ΠΊΠΆΠ΅ ТСстко фиксирован ΠΈ нСизмСняСм, Π½ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° опроса прСрывания обратная – Ρ‡Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ адрСс Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ опроса Π΄Π°Π½Π½ΠΎΠ³ΠΎ прСрывания.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ прСрывания

Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… PIC 18 ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмС прСрывания Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ прСрывания с Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° прСрываниями, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Π’ сСмСйствС AVR Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ прСрывания автоматичСски Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ Ρ‚Π΅ΠΌ самым Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ЕстСствСнно, Ρ‡Ρ‚ΠΎ Π² этом случаС сама эта ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π° Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСньший ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½Π°Ρ Ρ‚Π΅ΠΌΠ° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²: ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅.

МногиС Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎΠ± этом, Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ с Ρ‡Π΅ΠΌ это Сдят ΠΈ ΠΊΠ°ΠΊ это ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ β€” Π½Π΅Π·Π½Π°ΡŽΡ‚. А ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ это Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΊΠ° Π·Π½Π°Π½ΠΈΠΉ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ поднимаСтся Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅.

Рассмотрим ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚ АтмСл ATtiny13A, ΠΊΠ°ΠΊ самый простой ΠΈ доступный. Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” CodeVisionAVR.

Если ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ простым языком, Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, это останов ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π»ΠΈΠ±ΠΎ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ ΠΈ выполнСния послС этого куска ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… прСрывания.

Из ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΉ ситуации ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:
Π‘ΠΈΠ΄ΠΈΡ‚ офисный Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, составляСт Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ β€” обычная рутинная Ρ€Π°Π±ΠΎΡ‚Π°. И Ρ‚ΡƒΡ‚ Π·Π²ΠΎΠ½ΠΈΡ‚ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ β€” сработал сигнал прСрывания для Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°. Π Π°Π±ΠΎΡ‚Π½ΠΈΠΊ сразу ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π² сторонку Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π² это врСмя подготавливаСтся ΠΈ сохраняСт Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ мСсто остановки) ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ (ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈ этом выполняСт ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ). Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ дСйствия сотрудника зависят ΠΎΡ‚ самого Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°. Но Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½ ΠΎΠΏΡΡ‚ΡŒ возвращаСтся ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ своСй Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ( Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного Ρ†ΠΈΠΊΠ»Π° while(1)).

Π£ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… условий. Когда Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… выполнСния ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ срабатывании условий ΠΈΡ… выполнСния β€” ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Если ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ события ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Π΅ прСрывания, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ‚ΠΎ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ β€” ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³Π»Π°Π²Π½Π΅Π΅. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ описываСтся Ρ†ΠΈΡ„Ρ€ΠΎΠΉ. Π§Π΅ΠΌ мСньшС число ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° пррывания, Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСрывания. По-английски это называСтся Interrupt Vectors β€” Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Из ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΉ ситуации ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΈΠ΄ΠΈΡ‚ офисный Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, составляСт Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ β€” обычная рутинная Ρ€Π°Π±ΠΎΡ‚Π°. И Ρ‚ΡƒΡ‚ Π·Π²ΠΎΠ½ΠΈΡ‚ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±** Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π£ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ прСрывания Ρ€Π°Π²Π΅Π½ 3, Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Π’Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ΄Π΅Ρ‚ лСсом β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ указания.

Π’ Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСрывания, Ρ‡Ρ‚ΠΎ выполняСтся ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ дСлаСтся с рСгистрами ΠΈ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Π·Π° сколько Ρ‚Π°ΠΊΡ‚ΠΎΠ² процСссора.

Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ описываСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Interrupt Vectors, Π·Π°ΠΎΠ΄Π½ΠΎ опишСм, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π½Π°Ρ‡Π°Ρ‚:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ β€” RESET. АдрСс Π΅Π³ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ β€” Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ прСрывания β€” сброс ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΠΎ рСсСту ΠΎΡ‚ Π²Ρ…ΠΎΠ΄Π° RESET, ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π°Π»Π° напряТСния ΠΏΠΎ ΠΏΠΈΡ‚Π°Π½ΠΈΡŽ, Ссли Π°Ρ‚ΠΈΠ²Π΅Π½ Ρ„ΡŒΡŽΠ· Brown-out Reset ΠΈ ΠΎΡ‚ срабатывания стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π’ΡƒΡ‚ всС ΠΈ Ρ‚Π°ΠΊ понятно.

Π’Π΅ΠΊΡ‚ΠΎΡ€ Π΄Π²Π°: INT0 β€” ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π²Ρ…ΠΎΠ΄Ρƒ INT0. Π£ ATTiny13 это пятая Π½ΠΎΠΆΠΊΠ° PB0.
НоТку INT0 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° срабатываниС Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСрывания, насколько я помню, ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ сигнала, ΠΏΠΎ спаду ΠΈΠ»ΠΈ ΠΏΠΎ измСнСнию сигнала β€” ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚ ΠΈ спад. Π―, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ это ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ нСобходимости Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ подсчСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° для выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° дСлСния ΠΈΠ»ΠΈ умноТСния частоты.

Π’Π΅ΠΊΡ‚ΠΎΡ€ Ρ‚Ρ€ΠΈ: PCINT0 β€” ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ измСнСнию состояния ΠΏΠΎ Π²Ρ…ΠΎΠ΄Π°ΠΌ PB0 β€” PB5( PCINT0 β€” PCINT5), ΠΊΠΎΡ€ΠΎΡ‡Π΅ говоря всС Π½ΠΎΠΆΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для выполнСния этого прСрывания. Один ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΅Π³ΠΎ Π² основном для пробуТдСния ΠΈΠ· сна ΠΏΠΎ измСнСнию Π½Π° Π²Ρ…ΠΎΠ΄Π°Ρ…, ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ спит.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ – это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ процСссор Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ. ЀактичСски прСрывания ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ микропроцСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв прСрывания ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ сильно Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ЦПУ ΠΎΡ‚ Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. НапримСр, любой Ρ‚Π°ΠΉΠΌΠ΅Ρ€-счСтчик, отсчитав Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ число Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄ для ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ². Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ события (отсылка ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌ слова Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Π½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΌΠ½. Π΄Ρ€.) способны ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°Ρ‚ΡŒ процСссор ΠΌΠΎΠ΄ΡƒΠ»ΠΈ USART, SPI, TWI, ADC ΠΈ Ρ‚.Π΄. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ AVR ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ 4 Π΄ΠΎ 56 Ρ‚Π°ΠΊΠΈΡ… источников ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Π’Π°Π±Π».5. Π’Π°Π±Π»ΠΈΡ†Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ:

НомСр

АдрСс Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π‘ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ прСрывания

Π€Π»Π°Π³ прСрывания

ОписаниС события

Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ 0

Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ 1

CΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ TCNT2 ΠΈ OCR2

Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ TCNT1 ΠΈ OCR1A

Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ TCNT1 ΠΈ OCR1B

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ модуля SPI

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚Π° ΠΏΠΎ USART

ΠžΠΏΡƒΡΡ‚ΠΎΡˆΠ΅Π½ΠΈΠ΅ UDR Π² USART

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π±Π°ΠΉΡ‚Π° ΠΏΠΎ USART

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ записи Π² EEPROM

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Π°

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ модуля TWI

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ выполнСния spm

Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ прСрывания ТСстко Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ адрСс (Π²Π΅ΠΊΡ‚ΠΎΡ€ прСрывания) Π² Π½Π°Ρ‡Π°Π»Π΅ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ПолоТСния Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ для ATmega8 свСдСны Ρ‚Π°Π±Π».5. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎ адрСсу Π²Π΅ΠΊΡ‚ΠΎΡ€Π° прСрывания находится инструкция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:

Π’ модСлях AVR с объСмом FLASH ≀8 ΠΊΠ±Π°ΠΉΡ‚, для Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² отводится ΠΏΠΎ 1 слову памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π· для инструкций rjmp. Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ прСрывания Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΡƒΠΆΠ΅ 2 слова, Π° Π² качСствС инструкции ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ jmp.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ прСрываниями производится ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π—Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ разряды ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π Π’Π’, Π° ΠΎ наступлСнии события ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Ρ„Π»Π°Π³ΠΎΠ² прСрывания (см. Ρ‚Π°Π±Π».5). НапримСр, Ссли ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°-счСтчика 2 Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ (установлСн Π±ΠΈΡ‚ TOIE2 ΠΈΠ· TIMSK), Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ содСрТимого счСтного рСгистра TCNT2 c 0xFF Π½Π° 0x00 Π² рСгистрС TIFR Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ установлСн Ρ„Π»Π°Π³ прСрывания TOV2 ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ адрСсу 0x0004.

Π—Π° ΠΎΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Ρƒ AVR ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ„Π»Π°Π³ I ΠΈΠ· рСгистра SREG. ΠŸΡ€ΠΈ I=0 всС прСрывания, нСзависимо ΠΎΡ‚ состояния Π±ΠΈΡ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания адрСс Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ копируСтся Π² стСк, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но вмСстС с этим ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ сбрасываСт Π½Π° Π½ΡƒΠ»ΡŒ Ρ„Π»Π°Π³ I ΠΈ Ρ„Π»Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ явился источником прСрывания. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· прСрывания reti. ПослС Π΅Π΅ выполнСния адрСс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° восстанавливаСтся Π² PC ΠΈ ΠΏΡ€ΠΈ этом ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ устанавливаСтся Ρ„Π»Π°Π³ I.

НиТС рассмотрСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° внСшнСго прСрывания INT0.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, размСщСнная ΠΏΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΌΡƒ адрСсу (Π²Π΅ΠΊΡ‚ΠΎΡ€ сброса Ρƒ всСх ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ AVR), ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ main, Π³Π΄Π΅ ΠΈ происходит инициализация ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π’ качСствС условия возникновСния прСрывания Π²Ρ‹Π±Ρ€Π°Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Π²Ρ‹Π²ΠΎΠ΄Π° INT0 с уровня Π»ΠΎΠ³.1 Π½Π° Π»ΠΎΠ³.0 (ΠΌΠΎΠΌΠ΅Π½Ρ‚ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ). ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ события ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ адрСсу 0x0001 (Π²Π΅ΠΊΡ‚ΠΎΡ€ прСрывания INT0) ΠΈ, Π΄Π°Π»Π΅Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° service_INT0. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ содСрТимоС SREG ΠΈ, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… рСгистров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² контСкстС основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° такая ситуация, Ρ‡Ρ‚ΠΎ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ сразу нСсколько запросов Π½Π° прСрывания (ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ установлСны нСсколько Ρ„Π»Π°Π³ΠΎΠ² прСрывания). Π’ этом случаС ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‡Π΅ΠΉ адрСс Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² прСрывания находится Π²Ρ‹ΡˆΠ΅. НапримСр, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ запросов ΠΎΡ‚ АЦП (адрСс 0x000E) ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Π° (адрСс 0x0010), ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ запрос ΠΎΡ‚ АЦП. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρƒ AVR ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ Π΅Π³ΠΎ мСстополоТСниСм Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Π—Π΄Π΅ΡΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ запросы окаТутся ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° нСдопустимо большой срок. А Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полоТСния, Ссли Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ прСрывания. Для этого послС сохранСния контСкста Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ прСрывания Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ I ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sei:

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ прСрывания ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСдопустимыми ΠΏΡ€ΠΈ ΠΌΠ°Π»ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ стСка.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части: ΠŸΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

AVR Π£Ρ€ΠΎΠΊ 10. Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹-счСтчики. ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ

Π£Ρ€ΠΎΠΊ 10

Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹-счСтчики. ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ

БСгодня ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹-счётчики Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСрывания ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹.

Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹-счётчики – это Ρ‚Π°ΠΊΠΈΠ΅ устройства ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, постоянно Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚. Π‘Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ Π»ΠΈΠ±ΠΎ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π»ΠΈΠ±ΠΎ Π΄ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, сколько ΠΎΠ½ΠΈ битности. Π‘Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ постоянно с ΠΎΠ΄Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частоты ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΏΠΎΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ частоты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… рСгистрах.

И Π²ΠΎΡ‚ эти Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹-счётчики постоянно ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ссли ΠΌΡ‹ ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ.

Π’Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² МК Atmega8 Ρ‚Ρ€ΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π”Π²Π° ΠΈΠ· Π½ΠΈΡ… – это Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ максимально Π΄ΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ 255. Π”Π°Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»ΠΎΠ²Π°Ρ‚ΠΎ. Π”Π°ΠΆΠ΅ Ссли ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ частоты, Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ сСкунду Π½Π΅ отсчитаСм, ΠΌΡ‹ Π΄Π°ΠΆΠ΅ полсСкунды Π½Π΅ смоТСм ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. А Ρƒ нас Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π½Π½ΠΎ такая, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎ 1 сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ счёта свСтодиодного ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. МоТно ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ счёта.

Но Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ – это ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ΠΉ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€. Он Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π² Π½Ρ‘ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ прСлСсти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ². Π‘ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ опциями ΠΌΡ‹ познакомимся ΠΏΠΎΠ·ΠΆΠ΅.

Π’ΠΎΡ‚ этот 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ сСгодня ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅, познакомившись с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, Π²Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π² дальнСйшСм ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для достиТСния Π±ΠΎΠ»Π΅Π΅ слоТных Π·Π°Π΄Π°Ρ‡ Π½Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ нСдостаточно.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎ прСрываниях.

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ (Interrupts) – это Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ΄ Π² зависимости ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… условий ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ обстановки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ устройства, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΡˆΠΈΠ½Ρ‹, находящиСся Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅.

Π’ нашСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Atmega8 сущСствуСт 19 Π²ΠΈΠ΄ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Π’ΠΎΡ‚ ΠΎΠ½ΠΈ всС находятся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π² тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Какого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ условия? Π’ нашСм случаС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, досчитал Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡˆΠΈΠ½Ρƒ ΠΏΡ€ΠΈΡˆΡ‘Π» Π±Π°ΠΉΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ условия.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Π½Π° 7 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ – TIMER1 COMPA, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎ адрСсу 0x006.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим наш 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ TIMER1.

Π’ΠΎΡ‚ Π΅Π³ΠΎ структурная схСма

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ рСгистр TCNTn, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ постоянно мСняСтся число, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΎ постоянно наращиваСтся. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ это ΠΈ Π΅ΡΡ‚ΡŒ счётчик. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ рСгистр ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ число, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ досчитал Ρ‚Π°ΠΉΠΌΠ΅Ρ€.

А Π² рСгистры OCRnA ΠΈ OCRnB (Π±ΡƒΠΊΠ²Ρ‹ n – это Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π² нашСм случаС Π±ΡƒΠ΄Π΅Ρ‚ 1) – это рСгистры, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ заносим число, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‡ΠΈΠ»ΠΎ Π² рСгистрС TCNTn.

НапримСр, занСсли ΠΌΡ‹ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ число Π² рСгистр OCRnA ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½ΠΎΠ΅ число совпало со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² рСгистрС счёта, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΡ‹ Π΅Π³ΠΎ смоТСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ с прСрываниями ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² ΠΊΠΎΠ΄Π΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ находимся Π² Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅, Ρ‚ΠΎ ΠΌΡ‹ Π² это врСмя Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ (Π½Ρƒ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·Π½ΠΎ Β«ΠΌΡ‹Β», Π½Π° самом Π΄Π΅Π»Π΅ АЛУ). А ΠΊΠΎΠ³Π΄Π° считаСт Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ρ‚ΠΎ вСсь ΠΊΠΎΠ΄ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² это врСмя спокойно выполняСтся. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΠΌ колоссально, Π½Π΅ давая ΠΏΡ€ΠΎΡΡ‚Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ рСсурсам ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΠΎ сСкундС ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎ полсСкунды. Π’ это врСмя ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ наТатия ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ рСгистр TCCR. Π”Π°Π½Π½Ρ‹ΠΉ рСгистр – это рСгистр управлСния. Π’Π°ΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

Π’Π°ΠΊΠΆΠ΅ Ρƒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° сущСствуСт нСсколько Ρ€Π΅ΠΆΠΈΠΌΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ познакомимся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π΄Π΅Π½Π΅Π΅.

Он состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас ΠΊΠΎΠ½ΠΎΡ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΈ Π² Π½Π΅ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… рСгистров. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠ΅ рСгистра (Π° физичСски Π² ΠΎΠ΄Π½ΠΎΠΌ рСгистрС) хранится ΡΡ‚Π°Ρ€ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ рСгистра, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ – младшая. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ это рСгистровой ΠΏΠ°Ρ€ΠΎΠΉ, состоящСй ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… рСгистров TCCR1A ΠΈ TCCR1B. Π¦ΠΈΡ„Ρ€Π° 1 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ рСгистр ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ 1.

Π”Π°Π½Ρ‹ΠΉ рСгист TCCR ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° установку дСлитСля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π΅ Ρ‚Π°ΠΊ быстро считал, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ (Π²Π΅Ρ€Π½Π΅Π΅ Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹) Π·Π° установку ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°.

Π—Π° установку Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π±ΠΈΡ‚Ρ‹ WGM

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ здСсь ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ разновидностСй Ρ€Π΅ΠΆΠΈΠΌΠΎΠ².

Normal – это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ считаСт Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

PWM – это ШИМ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ разновидности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ ΡˆΠΈΡ€ΠΎΡ‚Π½ΠΎ-ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½ΠΎΠ³ΠΎ модулятора. Π‘ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… занятиях.

CTC – это сброс ΠΏΠΎ совпадСнию, ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ. Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²ΡŽΡ‚ΡΡ рСгистры TCNT ΠΈ OCR. Π’Π°ΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ° Π΄Π²Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСгистром.

ВсС разновидности Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΌΡ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ занятии ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Когда Π½Π°ΠΌ эти Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Ρ‚ΠΎΠ³Π΄Π° ΠΈ разбСрёмся.

Ну Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠΌΠΈΡ‚ΡŒ сСбя Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ рСгистры занСсти.

Код, ΠΊΠ°ΠΊ всСгда, Π±Ρ‹Π» создан ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Для протСуса Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ Π±Ρ‹Π» скопирован ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ с ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ занятия, Ρ‚Π°ΠΊΠΆΠ΅ Π² свойствах ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ΅. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Test07.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΊΠ°ΠΊ всСгда ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² протСусС. Если всё Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π±Π»Π°Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ занятии Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ. Код Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ размСстим послС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ segchar ΠΈ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main. ПослС ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ нашСй Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ segchar.

Мало Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ создадим Π½Π΅ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° Ρ†Π΅Π»Ρ‹Ρ… Π΄Π²Π΅. Π’ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΡ‹ размСстим вСсь ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ, Π° другая функция Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½ΠΈ спСцифичны ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ трСбуСтся. Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΎΠ½ΠΈ вызовутся сами Π² зависимости ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… условий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Ρ‹ Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΡ‹ Π½Π°Π·Π²ΠΎΠ²Ρ‘ΠΌ timer_ini

void timer_ini ( void )

Π’Π°ΠΊΠΆΠ΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ наши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ с объявлСниСм Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, с ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‡Ρ‘Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π° счСт наличия Π΄Π²ΡƒΡ… слСшСй Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ компилятор ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΈΡ… Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π—Π° счёт этих ΠΎΡ‚Ρ‡Π΅Ρ€Ρ‡ΠΈΠ²Π°Π½ΠΈΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π³Π΄Π΅ заканчиваСтся ΠΎΠ΄Π½Π° функция ΠΈ начинаСтся другая.

Данная функция, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² – Π½ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…, Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ…. Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main()

unsigned char butcount=0, butstate=0;

timer_ini ();

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΠΎΡ‚ΠΈΡ…ΠΎΠ½Π΅Ρ‡ΠΊΡƒ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠΌ.

НачнСм с рСгистра управлСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с TCCR1B. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°ΡˆΡƒ Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Β«Π˜Π›Π˜Β», ΠΌΡ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π±ΠΈΡ‚ рСгистра занСсём Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ

void timer_ini ( void )

TCCR1B |= (1 WGM12 ); // устанавливаСм Ρ€Π΅ΠΆΠΈΠΌ Π‘Π’Π‘ (сброс ΠΏΠΎ совпадСнию)

Из коммСнтария ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π±ΠΈΡ‚Π°ΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°, ΠΈ установим ΠΌΡ‹ ΠΈΠ· Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΡ‚ WGM12, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ оставим Π½ΡƒΠ»ΠΈ. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого ΠΌΡ‹ сконфигурировали Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π’Π°ΠΊΠΆΠ΅ Ρƒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° сущСствуСт Π΅Ρ‰Ρ‘ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ рСгистр – TIMSK. Π”Π°Π½Π½Ρ‹ΠΉ рСгистр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° маски ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ – Interrupt Mask. ДоступСн Π΄Π°Π½Π½Ρ‹ΠΉ рСгистр для всСх Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ², Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΌ рСгистрС ΠΌΡ‹ установим Π±ΠΈΡ‚ OCIE1A, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ Ρ‚ΠΈΠΏ прСрывания TIMER1 COMPA

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

TCCR1B |= (1 WGM12 ); // устанавливаСм Ρ€Π΅ΠΆΠΈΠΌ Π‘Π’Π‘ (сброс ΠΏΠΎ совпадСнию)

TIMSK |= (1 OCIE1A ); //устанавливаСм Π±ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ прСрывания 1ΠΎΠ³ΠΎ счСтчика ΠΏΠΎ совпадСнию с OCR1A(H ΠΈ L)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ поиграСмся с самими рСгистрами сравнСния OCR1A(H ΠΈ L). Для этого придётся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. РСгистр OCR1AH Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡΡ‚Π°Ρ€ΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ числа для сравнСния, Π° рСгистр OCR1AL – ΠΌΠ»Π°Π΄ΡˆΡƒΡŽ.

Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° напишСм ΠΊΠΎΠ΄ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ значСниями Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСгистра ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ дальшС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡Π°Π²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² расчётС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ счёта. Π‘Π΅Π· дСлитСля Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ слишком быстро ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

TIMSK |= (1 OCIE1A ); //устанавливаСм Π±ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ прСрывания 1ΠΎΠ³ΠΎ счСтчика ΠΏΠΎ совпадСнию с OCR1A(H ΠΈ L)

OCR1AH = 0b10000000; //записываСм Π² рСгистр число для сравнСния

OCR1AL = 0b00000000;

TCCR1B |= ( ); //установим Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

Пока Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ устанавливаСм, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ посчитали. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΡ‹ этим ΠΈ займёмся.

Пока Ρƒ нас Π² рСгистрС OCR1A находится число 0b1000000000000000, Ρ‡Ρ‚ΠΎ соотвСтствуСт дСсятичному числу 32768.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρƒ нас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ, Π½Π° частотС 8000000 Π“Ρ†.

Π Π°Π·Π΄Π΅Π»ΠΈΠΌ 8000000 Π½Π° 32768, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 244,14. Π’ΠΎΡ‚ с Ρ‚Π°ΠΊΠΎΠΉ частотой Π² Π³Π΅Ρ€Ρ†Π°Ρ… ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ наш Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ссли ΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρ‹ наши Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ 244 Ρ€Π°Π·Π° Π² сСкунду, поэтому ΠΌΡ‹ ΠΈΡ… Π΄Π°ΠΆΠ΅ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ частоты Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π° 256. Он Π½Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚, Π° Ρ€ΠΎΠ²Π½ΠΎ Π΄ΠΎ 1 Π“Ρ† ΠΌΡ‹ скоррСктируСм Π·Π°Ρ‚Π΅ΠΌ числом сравнСния.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ для 1 Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π― Π²Ρ‹Π΄Π΅Π»ΠΈΠ» Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ трСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΡ‚ CS12.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ частоты Ρƒ нас 256, Ρ‚ΠΎ Π½Π° этот Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΡ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ 8000000, получится 31250, Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΡ‚ ΠΌΡ‹ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ занСсти число Π² TCNT. Π”ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ числа ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ наш Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ 1 сСкунды. Число 31250 – это Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии 0b0111101000010010. ЗанСсём Π΄Π°Π½Π½ΠΎΠ΅ число Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

OCR1AH = 0b01111010; //записываСм Π² рСгистр число для сравнСния

OCR1AL = 0b00010010;

TCCR1B |= (1 CS12 ); //установим Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

Π‘ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ всё.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция – ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΠΎ совпадСнию. ΠŸΠΈΡˆΠ΅Ρ‚ΡΡ ΠΎΠ½Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

ISR ( TIMER1_COMPA_vect )

И Ρ‚Π΅Π»ΠΎ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ само ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ наступлСния совпадСния чисСл.

Нам Π½ΡƒΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ пСрСмСнная. Объявим Π΅Ρ‘ глобально, Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°

unsigned char i ;

БоотвСтствСнно, ΠΈΠ· ΠΊΠΎΠ΄Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() ΠΌΡ‹ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡƒΠ±Π΅Ρ€Ρ‘ΠΌ

Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ вСсь ΠΊΠΎΠ΄ Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅. Π•Π³ΠΎ Ρ€ΠΎΠ»ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΈ, я Π΄ΡƒΠΌΠ°ΡŽ, ΠΎΠ½ с этим справится Π½Π΅ Ρ…ΡƒΠΆΠ΅, Π° Π΄Π°ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Β«Π½ΠΈΠΊΠΎΠΌΡƒΒ» ΠΏΡ€ΠΈ этом Π½Π΅ мСшая.

while (1)

// for(i=0;i

// while (butstate==0)

// if (!(PINB&0b00000001))

// if(butcount

// butcount++;

// else

// butstate=1;

// else

// if(butcount > 0)

// butcount–;

// else

// butstate=1;

// segchar(i);

// _delay_ms(500);

// butstate=0;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, собствСнно, Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ segchar. Π—Π°Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° 1 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i. И Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π½Π΅ ΡƒΡˆΠ»Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ числа, Π±ΡƒΠ΄Π΅ΠΌ Π΅Ρ‘ ΠΎΠ±Π½ΡƒΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π΄Π°Π½Π½ΠΎΠΌ условии

if ( i >9) i =0;

segchar ( i );

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ исправим ΠΊΠΎΠ΄ Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main(). ΠŸΠΎΡ€Ρ‚ D, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° состояниС сСгмСнтов, Π·Π°Π±ΡŒΡ‘ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρƒ нас Π½Π΅ свСтился ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ с ΠΎΠ±Ρ‰ΠΈΠΌ Π°Π½ΠΎΠ΄ΠΎΠΌ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ здСсь занСсём число 0 Π² Π³Π»ΠΎΠ±Π°Π²Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i, просто для порядка. Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈ стартС Π² Π½Π΅ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π°ΠΊ всСгда Π½ΡƒΠ»ΠΈ. Но ΠΌΡ‹ всё ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Ρ‘. И, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Π΅Ρ‘ нСдостаточно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСх ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ прСрывания. Для этого сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция sei() – Set Interrupt.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ

PORTD = 0b11111111;

sei ();

Π’Π°ΠΊΠΆΠ΅ Π΅Ρ‰Ρ‘ ΠΌΡ‹ обязаны ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°

Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π°ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ сСгодня Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡ…

//unsigned char butcount=0, butstate=0;

Π‘ΠΎΠ±Π΅Ρ€Ρ‘ΠΌ наш ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сначала Π² протСусС. Если всё Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΆΠΈΠ²ΠΎΠΉ схСмС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Всё Ρƒ нас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ!

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ получился сСкундомСр. Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас Π΄Π°ΠΆΠ΅ Π½Π΅Ρ‚ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€Π°, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ сСкундомСр нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ сСгодня ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅ΠΌΡƒ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ. ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ прСрываниях, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΠ°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π½ΠΎΠ²Ρ‹Ρ… рСгистров ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π΄ΠΎ этого ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с рСгистрами ΠΏΠΎΡ€Ρ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π·Π° счёт всСго этого ΠΌΡ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ арифмСтичСско-логичСскоС устройство нашСго ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠšΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ здСсь (ΠΏΡ€ΠΎΠ΄Π°Π²Π΅Ρ† Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ) USBASP USBISP 2.0

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *