Як було показано в попередніх постах [
1,
2,
3,
4,
5], працювати з
HC-SR04 просто. Однак, описаний там спосіб -- з використанням GPIO, зовсім вульгарний. Контролери мають значно вишуканіші
засоби вимірювати та керувати тривалістю імпульсів, ніж просто неперервно пильнувати
за станом "ніжки": переривання, різноманітні потужні та гнучкі таймерів на додачу до SysTick. Про них і
напишемо наступного разу. А тут підведемо підсумки GPIO-підходу.
Результати вимірів у всіх підходів приблизно однакові (хоча метрологічної звірки й не проводив, але це і не було ціллю, про уточнення результатів поговоримо окремо). Акуратні порівняння швидкодії згенерованого різними способами коду (особливо -- після оптимізації) вимагатиме багато зусиль -- більше, ніж я зараз тому можу приділити, тому, при всій важливості, теж поки не робитиму.
Розглянемо те, що залишилося. Порівняємо особливості програмування різними способами та відповідні розміри прошивок i RAM.
Щоб не дублювати весь код, розглянемо дві прості але важливі операції:
- ініціалізацію піну PB1 на виведення,
- виведення одиниці,
зроблені в рамках різних підходів.