- Nastavení hardwaru a požadavky
- Obvod rozhraní LED a tlačítka N76E003
- Schéma zapojení N76E003
- Jednoduchý program ovládání GPIO pro N76E003
- Programování N76E003 a ověření výstupu
V našem předchozím tutoriálu jsme použili základní program blikání LED jako úvod do průvodce N76E003, již jsme se naučili, jak konfigurovat Keil IDE a nastavit prostředí pro programování jednotky mikrokontroléru nuvoton N76E003. Je čas se posunout o kousek dál a použít základní rozhraní GPIO pro ovládání dalšího hardwaru. Máte-li zájem, můžete také zkontrolovat další výukové programy GPIO pro mikrokontroléry, které jsou uvedeny níže -
- STM32 Nucleo64 s CubeMx a TrueSTUDIO - ovládání LED
- STM8S s ovládáním Cosmic C GPIO
- Výukový program PIC s MPLABX LED Blink
- MSP430 s Code Composer Studio - jednoduché ovládání LED
Vzhledem k tomu, že v našem předchozím tutoriálu jsme použili pouze LED k blikání pomocí IO pinu jako výstupu. V tomto tutoriálu se naučíme, jak použít jiný IO pin jako vstup a ovládat další LED. Aniž bychom ztratili mnoho času, vyhodnotíme, jaké nastavení hardwaru požadujeme.
Nastavení hardwaru a požadavky
Protože je třeba jako vstup použít přepínač, první věcí, kterou požadujeme, je tlačítko. Tímto tlačítkem také požadujeme ovládání další LED. Kromě těchto dvou požadujeme také rezistor pro omezení proudu LED a další rezistor pro účely rozbalování přes tlačítko. To bude dále demonstrováno ve schematické části. Komponenty, které požadujeme -
- Tlačítko (jakýkoli druh okamžitého spínače - hmatový spínač)
- Jakákoli barva LED
- 4,7k rezistor pro účely roztažení
- 100R rezistor
Nemluvě o tom, kromě výše uvedených komponent potřebujeme vývojovou desku založenou na mikrokontroléru N76E003 a programátor Nu-Link. Kromě toho jsou pro připojení všech komponent, jak je znázorněno níže, také vyžadovány propojovací kabely a připojovací vodiče.
Obvod rozhraní LED a tlačítka N76E003
Jak vidíme na níže uvedeném schématu, testovací LED, která je uvnitř vývojové desky, je připojena k portu 1.4 a další LED je připojena k portu 1.5. Rezistor R3 se používá k omezení proudu LED.
V kolíku 1.6 je připojeno tlačítko s názvem SW. Kdykoli stisknete tlačítko, čep se zvýší. V opačném případě se sníží na nízký 4,7K stahovací odpor R1. Pokud jste v tomto konceptu noví, můžete se dozvědět více o pull-up a pull-down rezistorech.
Pin je také pin související s programem, ke kterému má přístup programátor. Používá se k odesílání dat programu. Uvidíme však důvod výběru těchto pinů a získáme spravedlivé informace o mapování pinů N76E003.
Schéma zapojení N76E003
Kolík schéma N76E003 lze vidět v níže image-
Jak vidíme, každý pin má více funkcí a lze jej použít pro různé účely. Vezměme si příklad. Pin 1.7 lze použít jako přerušení nebo analogový vstup nebo jako univerzální operaci vstupu-výstupu. Pokud je tedy jakýkoli pin použit jako I / O piny, příslušná funkce nebude k dispozici.
Díky tomu pin 1.5, který se používá jako výstupní pin LED, ztratí PWM a další funkce. Ale to není problém, protože pro tento projekt není vyžadována další funkce. Důvodem výběru pin 1,5 jako výstupu a pin 1,6 jako vstupu, protože nejbližší dostupnost pinů GND a VDD pro snadné připojení.
V tomto mikrokontroléru z 20 pinů však lze použít 18 pinů jako pin GPIO. Pin 2.0 je vyhrazen pro vstup Reset a nelze jej použít jako výstup. Kromě tohoto pinu lze všechny piny konfigurovat v níže popsaném režimu.
Podle datového listu, PxM1.n a PxM2.n jsou dva registry, které se používají k určení řídicí operace I / O portu. Nyní je psaní a čtení portu GPIO úplně jiná věc. Protože zápis do řídicího registru portu změní stav blokování portu, zatímco čtení portu získá stav logického stavu. Ale pro čtení portu musí být nastaven do vstupního režimu.
Jednoduchý program ovládání GPIO pro N76E003
Kompletní program použitý v tomto výukovém programu najdete ve spodní části této stránky, vysvětlení kódu je následující.
Nastavení kolíku jako vstupu
Začněme nejprve vstupem. Jak již bylo řečeno, pro čtení stavu portu je třeba jej nastavit jako vstup. Proto, protože jsme vybrali P1.6 jako náš vstupní přepínač, označili jsme jej prostřednictvím níže uvedeného řádku fragmentu kódu.
# definovat SW P16
Stejný pin je třeba nastavit jako vstup. U funkce nastavení je tedy pin nastaven jako vstup pomocí níže uvedeného řádku.
void setup (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Tento řádek P16_Input_Mode; je definován v záhlaví souboru Function_define.h v „knihovně BSP include“, která nastavuje pinový bit jako P1M1- = SET_BIT6; P1M2 & = ~ SET_BIT6 . SET_BIT6 je také definována ve stejném souboru záhlaví as-
#define SET_BIT6 0x40
Nastavení pinů jako výstupu
Stejně jako vstupní pin je v první části kódu s příslušnými PINy definován také výstupní pin, který používá integrovaná testovací LED a externí LED1.
#define Test_LED P14 #define LED1 P15
Tyto piny jsou nastaveny jako výstup ve funkci nastavení pomocí níže uvedených řádků.
void setup (void) { P14_Quasi_Mode; // Výstup P15_Quasi_Mode; // Výstup P16_Input_Mode; }
Tyto řádky jsou také definovány v záhlaví souboru Function_define.h, kde nastavuje pinový bit jako P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 je také definována ve stejném souboru záhlaví as-
#define SET_BIT4 0x10
Nekonečná smyčka While
Hardware, pokud je připojen k napájení a funguje perfektně a měl by nepřetržitě poskytovat výstup, se aplikace nikdy nezastaví. Dělá totéž po nekonečné časy. Zde přichází funkce nekonečné while smyčky. Aplikace uvnitř smyčky while běží nekonečně.
while (1) { Test_LED = 0; sw_delay (150); Test_LED = 1; sw_delay (150); if (SW == 1) {LED1 = 0; } else {LED1 = 1; }}}
Smyčka while bliká LED podle hodnoty sw_delay a také kontroluje stav SW. Pokud je stisknutý spínač, P1.6 bude vysoký, a tedy když je stisknutý, stav čtení bude 1. V této situaci je po tuto dobu stisknutý spínač a port P1.6 zůstane vysoký, LED1 bude svítit.
Programování N76E003 a ověření výstupu
V našem tutoriálu Začínáme s N76E003 jsme se naučili programovat N76E003 již, takže zde budeme opakovat stejné kroky pro programování naší desky. Kód byl úspěšně zkompilován a vrátil 0 varování a 0 chyb a blikal pomocí výchozí metody blikání Keilem.
Jak vidíte na obrázku výše, naše externí LED se rozsvítí, když stisknu tlačítko. Kompletní fungování projektu najdete ve videu, na které odkazujete níže. Doufám, že se vám výukový program líbil a naučili se něco užitečného, pokud máte nějaké dotazy, a nechte je v sekci komentářů níže. Můžete také použít naše fóra k položení dalších technických otázek.