Показ дописів із міткою SPL. Показати всі дописи
Показ дописів із міткою SPL. Показати всі дописи

субота, 27 лютого 2016 р.

Далекомір HC-SR04 -- GPIO/висновки

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

Результати вимірів у всіх підходів приблизно однакові (хоча метрологічної звірки й не проводив, але це і не було ціллю, про уточнення результатів поговоримо окремо). Акуратні порівняння швидкодії згенерованого різними  способами коду (особливо -- після оптимізації) вимагатиме багато зусиль -- більше, ніж я зараз тому можу приділити, тому, при всій важливості, теж поки не робитиму. 

Розглянемо те, що залишилося. Порівняємо особливості програмування різними способами та відповідні розміри прошивок i RAM. 

Щоб не дублювати весь код, розглянемо дві прості але важливі операції:
  • ініціалізацію піну PB1 на виведення,
  • виведення одиниці, 
 зроблені в рамках різних підходів.

понеділок, 22 лютого 2016 р.

Далекомір HC-SR04 -- використовуючи GPIO/SPL

Ієрархія засобів програмування, орієнтована на SPL.
Клікабельно. (c) STMicroelectronics
CMSIS, про яку йшла мова минулого разу, штука потужна, але дуже вже низькорівнева. (Кожен раз себе так відчуваю, ніби попав у кабіну авіалайнера -- ті сотні бітиків, які треба правильно сконфігурувати, інакше нічого не працюватиме.) В STMicroelectronics теж розуміли, що користуватися нею, в більшості випадків, не дуже зручно. Першою спробою надати більш високий рівень абстракції для роботи із їхніми мікроконтролерами, була SPL -- Standard Peripherals Library. (Нагадую, основа CMSIS універсальна, від розробника ядра ARM Cortex-M, ARM Inc., виробники конкретних мікроконтролерів її хіба розширяють, а ось SPL -- специфічна для STM32). 
Зауваження -- не плутайте SPL із STL з С++ -- стандартною бібліотекою шаблонів. ;-)
Повторимо те ж, що і в попередньому пості, засобами  Standard Peripherals Library, SPL. Апаратна конфігурація та ж:
  • PB1 -- Trig
  • PB2 -- Echo
  • PC8 -- синій світлодіод
  • PC9 -- зелений світлодіод