Skip to main content

Programujeme STM32 - zdolejte jednočipy profesionálů (Ukázka, strana 99)

Page 1

8.2. PRAKTICKÉ UKÁZKY

8.2.2

Jednotlivé měření dvou kanálů s externím spouštěním

Druhý příklad demonstruje jednotlivé měření sekvence nastavených kanálů. Oproti předchozímu příkladu bude tedy potřeba na změření celé sekvence kanálů pouze jeden spouštěcí impulz, jehož zdrojem bude stisk tlačítka. Naměřená data budou v přerušení na konci měření sekvence odeslána pomocí UART do počítače. 8.2.2.1

Nastavení periferií

UART nastavíme stejným způsobem jako v předchozím příkladu. Nastavení převodníku se bude lišit. Kanály vybereme stejné, tedy IN0 a IN1 , ale na konci nabídky zaškrtneme možnost Regular Conversion Trigger, čímž se pin PB11 přepne do funkce spouštěče převodu.

V první části nastavení parametrů změníme pouze rozlišení převodníku na 8 bitů. Více se budeme věnovat druhé části nabídky. V ní musíme změnit dobu převodu Sampling Time, která je přednastavená na hodnotu 1,5 cyklu. To je příliš málo času na to, abychom stihli obsluhu přerušení z předchozího převodu. Z toho důvodu nastavíme maximální možnou dobu 160,5 cyklu. Kdyby tato hodnota nestačila, stojí za úvahu jiný přístup k obsluze přerušení, zrychlení přenosové rychlosti komunikace UART , nebo je možné změnit Clock Prescaler (první položka nabídky). O položkou níže si všimněme předem vybraného externího zdroje spuštění převodu. Stačí tedy zvolit, jaká hrana signálu bude určující. V našem případě vybereme sestupnou.

89 Ukázka elektronické knihy, UID: KOS505580


KAPITOLA 8. ADC

Na závěr povolíme přerušení, čímž je nastavení periferií hotové.

8.2.2.2

Tvorba programu

Hlavní program tohoto příkladu je velmi jednoduchý. V prvním kroku provedeme autokalibraci převodníku a poté převodník spustíme.

Proč je nutné převodník spouštět pomocí softwaru, když to má udělat externí signál? V dokumentaci se dočteme, že externí spouštěcí signály jsou brány v potaz pouze tehdy, když je převodník spuštěn, což stačí udělat jenom jednou na začátku programu, pokud jej stejným způsobem později nevypneme. Přesuneme se do souboru s obsluhami přerušení. Jako v předchozím příkladu je nutné vytvořit externí proměnnou, abychom zde mohli pracovat s USART2 .

Na konci souboru nalezneme obsluhu přerušení převodníku. Vytvoříme v něm statické pole o dvou prvcích pro ukládání dat z obou měření. Dále vytvoříme statickou proměnnou, která bude obsahovat počet přerušení převodníku.

90 Ukázka elektronické knihy, UID: KOS505580


8.2. PRAKTICKÉ UKÁZKY

Obsluhu obohatíme o dvě podmínky. V první testujeme, zda jde o přerušení z důvodu konce převodu (byť by to v tomto případě ani nebylo nutné). Pokud tomu tak je, každý převod, který je v pořadí sudý, uložíme do nultého prvku pole, každý lichý převod do prvního prvku. Ve druhé podmínce testujeme, zda došlo k přerušení z důvodu dokončení měření celé sekvence. Pokud ano, odešleme obě změřené hodnoty do počítače.

Program je takto připraven k přeložení.

91 Ukázka elektronické knihy


Turn static files into dynamic content formats.

Create a flipbook
Programujeme STM32 - zdolejte jednočipy profesionálů (Ukázka, strana 99) by Kosmas-CZ - Issuu