Gadgeteer & Shortcut
Gadgeteer Gadgeteer
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ, ΡΠ»Ρ‹ΡˆΠ°Π» ΠΏΡ€ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ с ΡƒΠ»ΡŒΡ‚Ρ€Π°Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм? Он Π² спящСм Ρ€Π΅ΠΆΠΈΠΌΠ΅ потрСбляСт всСго 0.5 ΠΌΠΈΠΊΡ€ΠΎΠ°ΠΌΠΏΠ΅Ρ€Π°. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Π½Π° сколько это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ прохоТдСния.
Shortcut Shortcut
Π”Π°, Π²ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Ρƒ я ΠΈ присматривал. Если смоТСшь Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ MCU Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 0.5 ΠΌΠΈΠΊΡ€ΠΎΠ°ΠΌΠΏΠ΅Ρ€Π°, ΠΏΠΎΠΊΠ° ΠΎΠ½ ΠΆΠ΄Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° пробуТдСния сильно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ – всСго нСсколько сотСн микросСкунд. Π’ 100-сСкундном тСстС это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ всСго нСсколько миллисСкунд, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚, Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΊΠΎΡ€Π΄ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π“Π»Π°Π²Π½ΠΎΠ΅ – ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ процСссор ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠ» Π² спящий Ρ€Π΅ΠΆΠΈΠΌ сразу, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это бСзопасно, ΠΈ просыпался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ самым Π²Π°ΠΆΠ½Ρ‹ΠΌ событиям. Π­Ρ‚ΠΎ идСальноС сочСтаниС энСргоэффСктивности ΠΈ скорости, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.
Gadgeteer Gadgeteer
ИмСнно Ρ‚Π° самая золотая сСрСдина. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° пробуТдСния Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 500 микросСкунд ΠΈ мСньшС – ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΌΠΈΡ‚ΡŒ Ρ…ΠΎΠ΄ Π³ΠΎΠ½ΠΊΠΈ. Π― Π±Ρ‹ Π½Π°Ρ‡Π°Π» с профилирования Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, убСдился Π±Ρ‹, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π΄Ρ€Π΅Π±Π΅Π·Π³Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстро, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‚ΠΈΠ» Π±Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π΄ΠΎ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ значСния. Если получится ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² спящий Ρ€Π΅ΠΆΠΈΠΌ ΠΊ ΠΏΠΈΠ½Ρƒ с Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅, вмСсто опроса – избавишься ΠΎΡ‚ этих скрытых микросСкунд Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов. Волько слСди Π·Π° объСдинСниСм ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ; слишком агрСссивноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Ρ€Π°Π΄ΠΈ экономии энСргии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² тСбя, Ссли ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡˆΡŒ каскадноС событиС. Π­Ρ‚ΠΎ слоТный баланс ΠΌΠ΅ΠΆΠ΄Ρƒ энСргопотрСблСниСм ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ – Π΄Π°Π²Π°ΠΉ посмотрим Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ рСгистров ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΈΠ½ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.
Shortcut Shortcut
ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ – сначала ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠΌ ISR, Π±Π΅Π· ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ². Π”Π΅Ρ€ΠΆΠΈ debounce Π² порядкС, слСди Π·Π° стороТСвым Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ для спящСго Ρ€Π΅ΠΆΠΈΠΌΠ°. Волько ΠΏΠΎΠΌΠ½ΠΈ, Ссли ΠΏΠ΅Ρ€Π΅ΡƒΡΠ΅Ρ€Π΄ΡΡ‚Π²ΡƒΠ΅ΡˆΡŒ с gate-Π°ΠΌΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ – ΡƒΠΏΡƒΡΡ‚ΠΈΡˆΡŒ каскад. Π”Π°Π²Π°ΠΉ взглянСм Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ рСгистров ΠΈ ΠΏΠΈΠ½Ρ‹, зафиксируСм Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΈ ΠΈ Π²Ρ‹ΠΆΠΌΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСкунду. Π’ΠΎΡ‚ ΠΎΠ½ΠΎ – золотая сСрСдина.
Gadgeteer Gadgeteer
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ. ΠŸΠΎΠ΄Π±Π΅Ρ€ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, минимальноС врСмя оТидания стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ для ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² сон. ΠŸΡ€ΠΎΡΡ‚ΠΎ постарайся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ, вынСси ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈΠ· Π½Π΅Ρ‘ Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ активируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС Π½Π΅ΠΌΠΈΠ½ΡƒΠ΅ΠΌΠΎΠΉ каскадной ошибки. Π—Π°Ρ‚Π΅ΠΌ Π½Π°Π·Π½Π°Ρ‡ΡŒ рСгистры ядра, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ – ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡˆΡŒ, ΠΊΠ°ΠΊ эти микросСкунды Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ.
Shortcut Shortcut
Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΡ€ΡƒΡ‚ΠΎ β€” Π΄Π°Π²Π°ΠΉ запишСм стороТСвой Ρ‚Π°ΠΉΠΌΠ΅Ρ€, сдСлаСм ISR Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ эти Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΏΠΎ краям. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠ°Ρ€Ρ‚Ρƒ рСгистров, Π²Ρ‹ΠΆΠΌΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСкунду. ΠŸΠΎΠ³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡΡ.