Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π£Ρ€ΠΎΠΊ 2. РСгистры ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠŸΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

Как извСстно ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ собой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽ числа, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎ-логичСским устройством (АЛУ). ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, эти числа ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ: ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ, ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ, снова Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Ρ‚.Π΄. Вся ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° ячСйки. Π Π°Π·ΠΌΠ΅Ρ€ ячСйки зависит ΠΎΡ‚ разрядности процСссора 8, 16 ΠΈΠ»ΠΈ 32 Π±ΠΈΡ‚Π°. КаТдой ячСйкС памяти соотвСтствуСт свой адрСс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ число.

Для программиста понятиС рСгистр ΠΌΠΎΠΆΠ΅Ρ‚ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с понятиСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ нашСм курсС ΠΏΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС Assembler, Π½ΠΎ Π½Π° ΠΌΠΎΠΉ взгляд этот язык Π±ΡƒΠ΄Π΅Ρ‚ слоТСн Π² понимания для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½Π° ассСмблСрС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшиС ΠΈ нСслоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Ρƒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Π³Π΄Π΅ трСбуСтся высокоС быстродСйствиС. Π›ΠΈΡ‡Π½ΠΎ я Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π½Π° языкС C.

Π”Π°Π½Π½Ρ‹ΠΉ курс рассчитан Π½Π° людСй, Π·Π½Π°ΡŽΡ‰ΠΈΡ… Π°Π·Ρ‹ языка программирования Π‘ΠΈ. ΠœΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ для изучСния Π‘ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ:

НСт ТСлания ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°? А ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основ программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°? А ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ срочно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°? Какими Π±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π’Π°ΠΌ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°ΡˆΠ΅ устройство. Если Π’Π°ΠΌ Π½ΡƒΠΆΠ½Π° наша ΠΏΠΎΠΌΠΎΡ‰ΡŒ, сдСлайтС Π·Π°ΠΊΠ°Π·, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² Ρ„ΠΎΡ€ΠΌΡƒ.

Π˜Ρ‚Π°ΠΊ, рСгистрам Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Π‘ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°. Когда создаСтся какая-Π»ΠΈΠ±ΠΎ пСрСмСнная, Ρ‚ΠΎ ΠΎΠ½Π° автоматичСски связываСтся с адрСсом свободной ячСйки памяти.

unsigned char my_variable;

Π”Π°Π½Π½Ρ‹Π΅, записываСмыС Π² эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти 1 Π±Π°ΠΉΡ‚, Ρ‚.ΠΊ. пСрСмСнная Ρ‚ΠΈΠΏΠ° unsigned char ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 1 Π±Π°ΠΉΡ‚. Если ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° числа ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

unsigned char var1, var2, sum;

Π—Π°Ρ‚Π΅ΠΌ произвСсти Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ слоТСния:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· рСгистров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ var1 ΠΈ var2, поступят Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ АЛУ. Π—Π°Ρ‚Π΅ΠΌ АЛУ выдаст Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС слоТСния) Π² ячСйку памяти, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sum.

Помимо рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ рСгистры ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. Π‘Π΅Π· Π½ΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±Ρ‹Π» Π±Ρ‹ бСссмыслСнной Β«ΠΆΠ΅Π»Π΅Π·ΠΊΠΎΠΉΒ». Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгистров ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния выполняСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ функциями ядра ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ модулями ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, АЦП, Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, UART, USB ΠΈ Ρ‚.Π΄.), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, рСгистрам ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния строго присвоСны свои адрСса. МСняя значСния рСгистров ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим ΠΊΠ°Ρ€Ρ‚Ρƒ памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° PIC12F675.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π―Ρ‡Π΅ΠΉΠΊΠΈ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. Как Π²ΠΈΠ΄Π½ΠΎ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ 64 Π±Π°ΠΉΡ‚Π° ΠžΠ—Π£ (General Purpose Registers– рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния) ΠΈ Π΄Π²Π° Π±Π°Π½ΠΊΠ° памяти. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ассСмблСрС, Ρ‚ΠΎ всСгда Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ Π±Π°Π½ΠΊΠ΅ памяти находится Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ рСгистр ΠΈ Π½Π° протяТСнии всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ постоянно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π½ΠΊΠ°ΠΌΠΈ памяти. НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ΠΈ избавляСт программиста ΠΎΡ‚ этой Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC12F675 прСдставляСт собой 8-Π²Ρ‹Π²ΠΎΠ΄Π½ΡƒΡŽ микросхСму, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 6 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ…ΠΎΠ΄ΠΎΠ²/Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ²:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Рассмотрим Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ описаниС рСгистров GPIO ΠΈ TRISIO:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Если Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки

Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΈΠ½Ρ‹ 7,6,4 ΠΈ 2 Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄. ΠŸΠΈΠ½Ρ‹ 7,6 ΠΈ 2 Π±ΡƒΠ΄ΡƒΡ‚ установлСны Π² 1, Π° ΠΏΠΈΠ½ 4 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ – 0. Π‘ΠΈΡ‚Ρ‹ 6 ΠΈ 7, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π² рСгистрах Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π² Π½ΠΈΡ… записано Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла. 0b00100011 – Π±ΡƒΠΊΠ²Π° b Π΄Π°Π½Π½ΠΎΠΉ записи ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС числа.

Π‘Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ дСсятичноС (ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ΅ для нас), Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС числа. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ числа записываСтся 0x, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ – Ρ†ΠΈΡ„Ρ€Π° 0. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ систСмах счислСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

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

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

НачинаСм ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ STM32: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры? Как с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ рассмотрСниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… вопросов

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрСли Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ числами, Ρ‚Π΅ΠΌ самым Π·Π°Π»ΠΎΠΆΠΈΠ² основу для рассмотрСния Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ с Π’Π°ΠΌΠΈ рассмотрим ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ вопрос: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ рСгистры

Одним ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ являСтся ΡƒΠΌΠ΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с рСгистрами. Π”Π°Π²Π°ΠΉΡ‚Π΅ для сСбя разбСрСмся, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Ρ‚Π°ΠΊΠΎΠ΅?

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· рСгистров ΠΈΠΌΠ΅Π΅Ρ‚ свой порядковый Π½ΠΎΠΌΠ΅Ρ€ – адрСс. АдрСс рСгистра обозначаСтся 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌ числом прСдставлСнным Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния. ΠŸΡƒΡ‚Ρ‘ΠΌ записи ΠΏΠΎ адрСсу рСгистра ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставлСны Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, осущСствляСтся настройка ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Π² МК. Вспомним, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ числа ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ. Π’ Ρ†Π΅Π»ΠΎΠΌ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° рСгистров: рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ рСгистры. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ располоТСны Π²Π½ΡƒΡ‚Ρ€ΠΈ ядра МК, Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ RAM-памяти.

Π’Π°ΠΊ ΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Reference Manual, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ скачивали Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅, это ΠΎΠ΄ΠΈΠ½ большой справочник ΠΏΠΎ рСгистрам, содСрТащимся Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° CMSIS позволяСт Π½Π°ΠΌ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ рСгистров вмСсто числовых адрСсов. НапримСр, ΠΊ рСгистру 0x40011018 ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ просто, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ символьноС имя GPIOC_BSSR. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ конфигурирования ΠΌΡ‹ рассмотрим Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π° нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ занятия.

Π˜Ρ‚Π°ΠΊ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ структура рСгистра описываСтся Π² Π²ΠΈΠ΄Π΅ нСбольшой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ:

Π Π°Π·Π±ΠΎΡ€ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ занятия

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вспомним Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±Ρ‹ обСспСчила ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… свСтодиодов Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Discovery (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π΄Π²ΡƒΡ…, Ссли Ρƒ вас другая вСрсия ΠΏΠ»Π°Ρ‚Ρ‹ Discovery) с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π·ΠΎΠΊ взглянСм Π½Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ использовали для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наш МК Π΄Ρ€Ρ‹Π³Π°Ρ‚ΡŒ двумя Π½ΠΎΠ³Π°ΠΌΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… располоТСны наши свСтодиоды:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с STM32, Π΄Π°ΠΆΠ΅ для Ρ‚Π°ΠΊΠΎΠΉ простой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиода Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ряд вопросов:

ΠšΡƒΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ наши свСтодиоды? К ΠΊΠ°ΠΊΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°?

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π³Π΄Π΅ Ρ‡Ρ‚ΠΎ находится Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Discovery, Π° Π² частности, Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ свСтодиоды β€” Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Schematic-Ρ„Π°ΠΉΠ», Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ скачали с сайта ST, Π»ΠΈΠ±ΠΎ прямо ΠΈΠ· Keil:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠžΡ‚ΠΊΡ€Ρ‹Π² Schematic ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ схСму всСго Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ β€” схСму ST-Link, обвязку всСй ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ нас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ Π΄Π²Π° свСтодиода, ΠΈΡ‰Π΅ΠΌ ΠΈΡ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, наши свСтодиоды ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ GPIOC Π½Π° 8 ΠΈ 9 ΠΏΠΈΠ½.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ GPIO?

Π’ Ρ†Π΅Π»ΠΎΠΌ, любая Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… STM32 сводится ΠΊ стандартной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий:

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Вопрос ΠΊΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ систСмы тактирования, Π΅Ρ‘ настройки ΠΈ использования ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Найти ΠΊ ΠΊΠ°ΠΊΠΎΠΉ шинС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ наш ΠΏΠΎΡ€Ρ‚ GPIOC ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Datasheet’Π΅ Π½Π° наш МК Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Memory Mapping Π² Π’Π°Π±Π»ΠΈΡ†Π΅ 16. STM32F051xx peripheral register boundary addresses.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Как Π²Ρ‹ ΡƒΠΆΠ΅ успСли Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, нСобходимая Π½Π°ΠΌ шина имСнуСтся ΠΊΠ°ΠΊ AHB2. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с рСгистром, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ ΠΏΠΎΡ€Ρ‚ GPIO Π½Π° шинС AHB, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» Π² Reference Manual. По названию рСгистров ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ Π½Π°ΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² этот ΠΏΡƒΠ½ΠΊΡ‚, ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ наш 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ рСгистр, Π΅Π³ΠΎ адрСс смСщСния, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, способ доступа ΠΊ рСгистру ΠΈ пСрСчислСниС Ρ‚ΠΎΠ³ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ Π² рСгистрС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ тактирования Π½Π° ΠΏΠΎΡ€Ρ‚Π°Ρ… GPIO. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ описанию ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ ΠΎΠΏΡ†ΠΈΡŽ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

БоотвСтствСнно Ссли ΠΌΡ‹ установим 19 Π±ΠΈΡ‚ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«1Β» Ρ‚ΠΎ это обСспСчит Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ тактирования Π½Π° ΠΏΠΎΡ€Ρ‚ I/O C – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° наш GPIOC. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ β€” Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹, Π½Π΅ затрагивая ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚.ΠΊ. ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±Π΅Π· надобности Π΄Ρ€ΡƒΠ³ΠΈΠ΅ настройки.

ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π±ΠΈΡ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Β«Π˜Π›Π˜Β» ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра с маской которая содСрТит Ρ‚Π΅ Π±ΠΈΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. НапримСр, слоТим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра RCC->AHBENR ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚.Π΅. 0x14 ΠΈ число 0x80000 Ρ‚Π΅ΠΌ самым Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GPIOC ΠΏΡƒΡ‚Π΅ΠΌ установки 19 Π±ΠΈΡ‚Π°:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? Всё достаточно просто. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρƒ нас Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ адрСсам рСгистров Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎ адрСсу ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

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

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ сдСлали Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ занятии, ΠΈΠ»ΠΈ скачайтС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ΠΉ ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС содСрТимоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ оставив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main() ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ тактирования (ΠΎΠ½Π° Π½Π°ΠΌ понадобится для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΊΠΎΠ΄Π°).

Наш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ для ознакомлСния ΠΊΠΎΠΏΠ½Ρ‘ΠΌ Π²Π³Π»ΡƒΠ±ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CMSIS.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ мСсту Π³Π΄Π΅ объявлСна Ρ‚Π° ΠΈΠ»ΠΈ иная константа ΠΈΠ»ΠΈ пСрСмСнная Π² Keil Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° удобная функция. КликаСм ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π°ΠΌ константС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° RCC:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

И ΠΌΡ‹ пСрСносимся Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CMSIS, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС рСгистры доступныС для управлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ способом ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ TypeDef-структур, Π² Ρ‚ΠΎΠΌ числС ΠΈ наш RCC:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠŸΡ€ΠΎΠ²Π°Π»ΠΈΠ²ΡˆΠΈΡΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² RCC_TypeDef ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ структуру Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ описаны всС поля нашСго рСгистра:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

БоотвСтствСнно, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ спокойно ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π½Π°ΠΌ рСгистру записью Π²ΠΈΠ΄Π° PERIPH_MODULE->REGISTER ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Помимо мнСмоничСского обозначСния рСгистров Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ обозначСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ². Если ΠΌΡ‹ провалимся ΠΊ объявлСнию ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° RCC_AHBENR_GPIOCEN ΠΈΠ· нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ объявлСниС всСх ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ CMSIS Ρƒ нас получаСтся лаконичная читаСмая запись Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² рСгистр, Ρ‡Π΅Ρ€Π΅Π· установку ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ запускаСм Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ ΠΏΠΎΡ€Ρ‚:

Π’ качСствС задания: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности Keil, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ получился адрСс рСгистра RCC->AHBENR ΠΊΠ°ΠΊ 0x40021014.

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ ΠΏΠΈΠ½Ρ‹ GPIO для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод?

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ свСтодиоды ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ GPIOC ΠΊ ΠΏΠΈΠ½Π°ΠΌ PC8 ΠΈ PC9. Нам Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ загорался свСтодиод. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ сразу ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚Ρ‹ GPIO ΠΌΡ‹ рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈ Ρ‚ΡƒΡ‚ ΠΌΡ‹ сконцСнтрируСмся ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ с рСгистрами.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ пСрСвСсти Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΈΠ½ΠΎΠ² PC8 ΠΈ PC9 Π² Ρ€Π΅ΠΆΠΈΠΌ Output. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Reference Manual Π² Ρ€Π°Π·Π΄Π΅Π» 9. General-purpose I/Os (GPIO) ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΈΠ½ΠΎΠ² ΠΏΠΎΡ€Ρ‚Π° GPIO ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π·Π° этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ рСгистр MODER:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Будя ΠΏΠΎ описанию, для установки ΠΏΠΈΠ½ΠΎΠ² PC8 ΠΈ PC9 Π² Ρ€Π΅ΠΆΠΈΠΌ Output ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 01 Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ поля рСгистра GPIOC.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΡΠΌΡƒΡŽ установку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Или Ρ‡Π΅Ρ€Π΅Π· использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

ПослС Π΄Π°Π½Π½ΠΎΠΉ инструкции наши ΠΏΠΈΠ½Ρ‹ PC8 ΠΈ PC9 ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΡƒΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ Output.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод?

Если ΠΌΡ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° список доступных рСгистров для управлСния ΠΏΠΎΡ€Ρ‚ΠΎΠΌ GPIO Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ рСгистр ODR:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΈΠ½ΠΎΠ² ΠΏΠΎΡ€Ρ‚Π°. Π•Π³ΠΎ структуру Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΈΠΆΠ΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ смСну состояний свСтодиодов Π½Π°Π΄ΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ 8 ΠΈ 9 Π±ΠΈΡ‚Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ рСгистру Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0x100 ΠΈ 0x200.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· прямоС присвоСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ рСгистру:

МоТСм Ρ‡Π΅Ρ€Π΅Π· использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро β€” ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ смСны состояний свСтодиодов ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° горят постоянно. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΡ€Π³Π°Π»ΠΈ ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΡ‹ внСсСм ΠΈΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² Π²ΠΈΠ΄Π΅ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΉΠΌΠ΅Ρ‚ МК бСсполСзными вычислСниями Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

На этом ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ знакомство с рСгистрами ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСго ΠΊΠΎΠ΄Π°

НСбольшоС приятноС Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ: Π² Keil имССтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Debug-инструмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ пошагово Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС любого ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Для этого послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ послС компиляции ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Start Debug Session:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Рабочая срСда Keil ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° удобная функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΎΠ½Π° позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС рСгистров ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… состояниС простым ΠΊΠ»ΠΈΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΊΠΎΠΉ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅ΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈ справа откроСтся ΠΎΠΊΠ½ΠΎ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ рСгистров ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Если Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ мСню, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ адрСс рСгистра ΠΈ Π΅Π³ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС. Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ описаниС ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ рСгистра:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ пошагово Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиоды Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ€ для Ρ„Π°Π½Ρ‚Π°Π·ΠΈΠΈ Ρ‚ΡƒΡ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ. Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, сдСлайтС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠΎΡ€Π³Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΠΌΠΈ свСтодиодами. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ экспСримСнтируйтС! )

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

Π Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ

ПослСдниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π Π°Π΄ΠΈΠΎΠ΄Π΅Ρ‚Π°Π»ΠΈ – ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ

РСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, стСк, счСтчик ΠΊΠΎΠΌΠ°Π½Π΄

РСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, стСк, счСтчик ΠΊΠΎΠΌΠ°Π½Π΄

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠ΅ ядро ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²:
— рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния
– рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
– стСк
– счСтчик ΠΊΠΎΠΌΠ°Π½Π΄

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ дня ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ!
ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ вас Π½Π° сайтС β€œ Π Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ β€œ

БСгодня ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ процСссорного ядра ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΌΡ‹ рассмотрСли Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎ-логичСскоС устройство ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Π½ΠΎ ΠΈ Π² Ρ‚ΠΎΠΆΠ΅ врСмя ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ вопросы:
— рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния
– рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
– стСк
– счСтчик ΠΊΠΎΠΌΠ°Π½Π΄
ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Π½ΠΎ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, рассмотрим ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

РСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния

Надо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ физичСски РОН (ΠΊΠ°ΠΊ ΠΈ рассматриваСмыС Π½ΠΈΠΆΠ΅ рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°) Π½Π΅ входят Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹ МК ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, РОН (ΠΈ рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°) Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² адрСсном пространствС памяти Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΊ ΠΊ ячСйкам памяти ΠžΠ—Π£ (SRAM).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

Π’Π°ΠΊ ΠΊΠ°ΠΊ всС РОН Π²ΠΎΡΡŒΠΌΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹Π΅ (ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅) Ρ‚ΠΎ ΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ случаС, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΌΠΈ), Ρ‚ΠΎ РОН с R26 ΠΏΠΎ R31 ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ сдвоСнныС рСгистры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠ΅ΡΡ‚Π°Π½Π΄Ρ†Π°Ρ‚ΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹Ρ… рСгистров ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° (Ρ‚Π°ΠΊΠΈΠ΅ сдвоСнныС рСгистры ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ β€œΡΠ»ΠΎΠ²ΠΎΠΌβ€, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ячСйками памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ):
R26 ΠΈ R27 – сдвоСнный рСгистр β€œΠ₯”,
R28 ΠΈ R29 – сдвоСнный рСгистр β€œY”,
R30 ΠΈ R31 – сдвоСнный рСгистр β€œZ”.
ΠŸΡ€ΠΈ этом ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ рСгистр Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π΅ (R26, ΠΈΠ»ΠΈ R28, ΠΈΠ»ΠΈ R30) ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ младшСго Π±Π°ΠΉΡ‚Π° ΠΈ обозначаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ β€œL”. НапримСр: XL, YL, ZL.
Π’Ρ‚ΠΎΡ€ΠΎΠΉ рСгистр Π² ΠΏΠ°Ρ€Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΈ обозначаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ β€œH”. НапримСр: XH, YH, ZH.
Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ (ΠΈΠ»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ число нСпосрСдствСнно Π² Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ рСгистр, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Π΅Π³ΠΎ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ X, Y ΠΈΠ»ΠΈ Z, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ любой Π±Π°ΠΉΡ‚ (ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² любой Π±Π°ΠΉΡ‚) Π²Ρ‹Π±Ρ€Π°Π² Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ младшСго ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ рСгистра (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ XL ΠΈΠ»ΠΈ XH).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ хотя ΠΈ всС рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Π½ΠΎ Π½Π΅ всС ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опСрациях. ΠŸΡ€ΠΈ этом, рСгистрам с R16 ΠΏΠΎ R31 доступны всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° рСгистрам с R0 ΠΏΠΎ R15 – Π½Π΅ всС.
И Π΅Ρ‰Π΅. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… МК (Tiny) Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ рСгистр Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ – Z (R30,R31).

Π’ описаниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ указываСтся, ΠΊΠ°ΠΊΠΈΠ΅ РОН ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

РСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Π² МК присутствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств. ΠšΡ€ΠΎΠΌΠ΅ Π½ΠΈΡ…, Π² МК Π΅ΡΡ‚ΡŒ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ устройства. ВсСми этими устройствами Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Для этих Ρ†Π΅Π»Π΅ΠΉ Π² МК ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

Π•Ρ‰Π΅ Ρ€Π°Π· напомню, Ρ‡Ρ‚ΠΎ хотя РОН ΠΈ Π Π’Π’ выдСляСтся мСсто Π² памяти Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ доступноС пространство памяти Π΄Π°Π½Π½Ρ‹Ρ… для нас ΠΎΡ‚ этого Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ, вСдь физичСски ΠΎΠ½ΠΈ Ρ‚Π°ΠΌ Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ. Если написано, Ρ‡Ρ‚ΠΎ МК ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… 128 Π±Π°ΠΉΡ‚, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти 128 Π±Π°ΠΉΡ‚ Π² своих цСлях. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ адрСс памяти Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ Π½Π΅ с нуля, ΠΊΠ°ΠΊ Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ энСргонСзависимой памяти.

ΠšΡƒΡΠΎΡ‡Π΅ΠΊ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ рСгистров Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число – Π½ΠΎΠΌΠ΅Ρ€ рСгистра, ΠΈ ΠΎΠ½ΠΎ ΠΆΠ΅ Π΅Π³ΠΎ адрСс Π² адрСсном пространствС Π Π’Π’, Π² скобках указываСтся адрСс рСгистра Π² адрСсном пространствС памяти Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚.Π΅. Π½ΠΎΠΌΠ΅Ρ€ +32):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅

НазначСниС ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π Π’Π’ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ постСпСнно, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ изучСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройств МК.
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΌΡ‹ посвятим ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π½ΠΎ самого Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ, Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… – рСгистру состояния, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ SREG.

Π‘Ρ‚Π΅ΠΊ

Π‘Ρ‚Π΅ΠΊ, ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка – это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ рСгистр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ стСковой памяти.
МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ стСк (Ρ‚ΠΎΡ‡Π½Π΅Π΅ стСковая ΠΏΠ°ΠΌΡΡ‚ΡŒ, стСк состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка ΠΈ стСковая ΠΏΠ°ΠΌΡΡ‚ΡŒ) – это Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ с Ρ‚ΡƒΠΏΠΈΠΊΠΎΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅, состоящий ΠΈΠ· ячССк памяти. По ΠΌΠ΅Ρ€Π΅ заполнСния ячССк памяти ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ уходят Π² Π³Π»ΡƒΠ±ΡŒ стСка, ΠΈ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΠ² сначала послСдниС Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Допустим, Ссли ΠΌΡ‹ запишСм Π² стСк ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΠΈ числа: 10,20 ΠΈ 30, Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· стСковой памяти число 10, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ придСтся ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ числа 30 ΠΈ 20. Π’.Π΅., Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ записанноС послСдним всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.
Π‘Ρ‚Π΅ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ МК Π² своих цСлях, Π½ΠΎ ΠΈ программистами.
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, МК ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ записываСт Π² стСк адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС возвращСния ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, МК ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ этот адрСс ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π² счСтчик ΠΊΠΎΠΌΠ°Π½Π΄, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ продолТаСтся с ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½ΠΎΠ³ΠΎ мСста.
Для нас Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² стСкС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π² стСкС ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний, Π° Π·Π°Ρ‚Π΅ΠΌ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ….

Π’ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отсутствуСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… (ΠžΠ—Π£), Π° это Ρ‡Π°ΡΡ‚ΡŒ МК сСмСйства Tiny, стСк организуСтся Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… МК стСк располагаСтся Π² собствСнной памяти Π° Π³Π»ΡƒΠ±ΠΈΠ½Π° Π΅Π³ΠΎ Ρ€Π°Π²Π½Π° Ρ‚Ρ€Π΅ΠΌ уровням. Аппаратный стСк Π½Π΅ доступСн программисту, Π΅Π³ΠΎ Π² своих цСлях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам МК, сохраняя Π² Π½Π΅ΠΌ адрСса ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ возмоТности Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ стСка ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих цСлях Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, Ρ‚ΠΎ Π½Π° этом ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅.
Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… МК, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, стСк организуСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Π‘Ρ‚Π΅ΠΊ Π² этом случаС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнной памяти Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… (ΠžΠ—Π£). Π’Π°ΠΊΠΎΠΉ стСк доступСн для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ ΠΈ рассмотрим Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ.
Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса записи Π΄Π°Π½Π½Ρ‹Ρ… Π² стСк ΠΈ ΠΈΡ… чтСния ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка.
Π’ качСствС указатСля стСка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° рСгистра Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°:
– Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… нСбольшая (Π΄ΠΎ 256 Π±Π°ΠΉΡ‚), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΠΎΡΡŒΠΌΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΉ Π Π’Π’ – SPL;
– Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… большая (Π±ΠΎΠ»Π΅Π΅ 256 Π±Π°ΠΉΡ‚), ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π Π’Π’ – SPL, добавляСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ – SPH, ΠΈ вмСстС ΠΎΠ½ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка.
Π’ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ стСка содСрТится адрСс ячСйки памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ записаны ΠΈΠ»ΠΈ считаны Π΄Π°Π½Π½Ρ‹Π΅.

Для программиста Π² систСмС ΠΊΠΎΠΌΠ°Π½Π΄ МК Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
PUSH – ΠΊΠΎΠΌΠ°Π½Π΄Π° записи Π² стСк
– POP – ΠΊΠΎΠΌΠ°Π½Π΄Π° чтСния ΠΈΠ· стСка
Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотри ΠΊΠ°ΠΊ происходит запись Π² стСк ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ.
Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² стСк:
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² стСк, ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² любой РОН.
По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ PUSH МК записываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ РОН Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ адрСсу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ содСрТимоС стСка Π½Π° 1 (Ссли ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²ΠΎΡΡŒΠΌΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΉ) ΠΈΠ»ΠΈ Π½Π° 2 (Ссли ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΉ). Новая ΠΊΠΎΠΌΠ°Π½Π΄Π° PUSH Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ячСйку ΠžΠ—Π£ ΠΈ ΠΎΠΏΡΡ‚ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ содСрТимоС указатСля стСка. И Ρ‚Π°ΠΊ, Π΄Π°Π»Π΅Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅
Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· стСка:
По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ POP, МК сначала ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ содСрТимоС указатСля стСка Π½Π° 1 ΠΈΠ»ΠΈ 2, Π° Π·Π°Ρ‚Π΅ΠΌ считываСт Π΄Π°Π½Π½Ρ‹Π΅ с ячСйки ΠžΠ—Π£, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка. И Ρ‚Π°ΠΊ, Π΄Π°Π»Π΅Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистры Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅
ПослС сброса МК содСрТимоС указатСля стСка Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ. Π’.Π΅. получаСтся, Ρ‡Ρ‚ΠΎ послС сброса, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ячСйку памяти ΠžΠ—Π£.
А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ смотритС, Ρ‡Ρ‚ΠΎ получится, Ссли ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² стСк:
– пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° PUSH – содСрТимоС РОН Π±ΡƒΠ΄Π΅Ρ‚ записано Π² Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ячСйку памяти,Π° Π·Π°Ρ‚Π΅ΠΌ МК попытаСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ содСрТимоС стСка Π½Π° 1 ΠΈΠ»ΠΈ 2 – ΠΈ Π½ΠΈ Ρ‡Π΅Π³ΠΎ Π½Π΅ получится – адрСс ячСйки памяти Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСньшС нуля!
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стСковой ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ – адрСс ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ячСйки памяти с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начнСтся запись Π² стСк.
ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ стСка ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ адрСс послСднСй ячСйки памяти Π΄Π°Π½Π½Ρ‹Ρ…. Если Ρƒ вашСго МК ΠžΠ—Π£ составляСт 128 Π±Π°ΠΉΡ‚, Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ адрСс 128 ячСйки памяти. Под стСк ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΉ свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Если Π² качСствС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ячСйку памяти, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° стСковой ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. А Ссли Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ стСка ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ячСйку памяти ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ, ΠΈ ΠΏΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠžΠ—Π£ для хранСния своих Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ стСка придСтся – ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π»Π΅Π·Ρ‚ΡŒ Π½Π° ячСйки Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ – прСдставляСт собой рСгистр, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ исполняСмой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π Π°Π·ΠΌΠ΅Ρ€ счСтчика ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… разрядов Π΄ΠΎ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈ (Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ). Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ счСтчика зависит ΠΎΠ± объСма памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ доступСн для программиста, Π² Π½Π΅Π³ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π Π°Π±ΠΎΡ‚ΠΎΠΉ счСтчика ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π΅Π΄ΠΈΠ½ΠΎΠ»ΠΈΡ‡Π½ΠΎ МК.

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания устройства ΠΈΠ»ΠΈ сброса ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, счСтчик ΠΊΠΎΠΌΠ°Π½Π΄ устанавливаСтся Π² ноль, Ρ‚.Π΅. ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΉ адрСс памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ адрСсу начинаСтся наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Ссли ΠΌΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ прСрывания) ΠΈΠ»ΠΈ адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ начинаСтся наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ прСрывания). ΠŸΡ€ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТимоС счСтчика ΠΊΠΎΠΌΠ°Π½Π΄ автоматичСски увСличиваСтся Π½Π° 1 ΠΈΠ»ΠΈ 2 (Π² зависимости ΠΎΡ‚ выполняСмой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ машинном Ρ†ΠΈΠΊΠ»Π΅. Π’.Π΅., послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, счСтчик Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎΡ‚ порядок Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½, Ссли Π½Π° ΠΏΡƒΡ‚ΠΈ МК ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ встрСтится ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ прСрывания. Π’ этом случаС содСрТимоС счСтчика – адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, записываСтся Π² стСк, Π° Π² счСтчик записываСтся адрСс ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ. По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ возвращСния ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² счСтчик записываСтся адрСс ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сохранСнный Π² стСкС, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° продолТаСтся дальшС. ВсС это продСлываСтся автоматичСски, Π±Π΅Π· нашСго участия.

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ – ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ, ΠΌΡ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
ПослС этого, вся тСория ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π²ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΊΡƒ с ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ. Π›Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° разрабатывая практичСскоС устройство.
РасскаТу Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ дальшС.
ПослС ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»ΡŒΡ‚ΠΌΠ΅Ρ‚Ρ€, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ изучая ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для этого тСоритичСскиС вопросы.
Π’ΠΎΠ»ΡŒΡ‚ΠΌΠ΅Ρ‚Ρ€ я Π±ΡƒΠ΄Ρƒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π° основС МК ATiny26 – самый подходящий (ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся) для этого ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² цСлях изучСния вопроса ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ МК Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² устройств для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сначала свСтодиодныС сСгмСнтныС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ сСгмСнтным LCD дисплССм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π–Πš ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Π° Π΅Π³ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ссли Π½Π΅ ΠΏΠΎΠ³ΠΈΠ±Π½Π΅ΠΌ Π² процСссС, графичСским Π–Πš ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Π²ΠΎΠ»ΡŒΡ‚ΠΌΠ΅Ρ‚Ρ€Ρƒ Π°ΠΌΠΏΠ΅Ρ€ΠΌΠ΅Ρ‚Ρ€, Π° свСрху этого Π±ΡƒΡ‚Π΅Ρ€Π±Ρ€ΠΎΠ΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ частотомСр. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ дальшС, чСстно говоря, я ΠΏΠΎΠΊΠ° Π½Π΅ знаю.

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

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

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