- Hardver beállítása és követelményei
- N76E003 LED és nyomógombos interfész áramkör
- N76E003 Kihúzható ábra
- Egyszerű GPIO vezérlőprogram az N76E003 számára
- N76E003 programozása és a kimenet ellenőrzése
Korábbi oktatóanyagunkban egy alapvető LED-es villogó programot használtunk az N76E003 útmutató használatának megkezdéséhez, már megtanultuk, hogyan kell konfigurálni a Keil IDE-t és beállítani a környezetet az N76E003 nuvoton mikrovezérlő egység programozásához. Itt az ideje, hogy egy kicsit tovább lépjünk, és az alap GPIO interfészt használjuk további hardverek vezérléséhez. Ha érdekel, ellenőrizhet más mikrovezérlő GPIO oktatóanyagokat is, amelyek az alábbiakban szerepelnek-
- STM32 Nucleo64 CubeMx és TrueSTUDIO - LED vezérléssel
- STM8S Cosmic C GPIO vezérléssel
- PIC MPLABX LED Blink oktatóanyaggal
- MSP430 Code Composer Studio-val - Egyszerű LED-vezérlés
Mivel előző oktatóanyagunkban csak egy LED-et használtunk villogni, kimenetként IO tűt használva. Ebben az oktatóanyagban megtanuljuk, hogyan kell egy másik IO tűt bemenetként használni és egy további LED-et vezérelni. Anélkül, hogy sok időt pazarolnánk, értékeljük, hogy milyen hardverbeállításra van szükségünk.
Hardver beállítása és követelményei
Mivel egy kapcsolót kell bemenetként használni, az első dolog, amire szükségünk van, egy nyomógomb. Szükségünk van egy további LED-re is, amelyet ezzel a nyomógombbal lehet vezérelni. Ezen a kettőn kívül egy ellenállásra is szükségünk van a LED áramának korlátozására, és egy további ellenállásra is szükségünk van a nyomógombon keresztüli lehúzás céljából. Ezt tovább szemléltetjük a sematikus részben. A szükséges alkatrészek -
- Nyomógomb (bármilyen pillanatnyi kapcsoló - tapintható kapcsoló)
- A LED bármilyen színe
- 4.7k ellenállás lehúzási célokra
- 100R ellenállás
Nem is beszélve arról, hogy a fenti összetevőkön kívül szükségünk van az N76E003 mikrokontroller alapú fejlesztőtáblára, valamint a Nu-Link programozóra. Ezenkívül az összes alkatrész csatlakoztatásához kenyérlemez és összekötő vezetékek is szükségesek, az alábbiak szerint.
N76E003 LED és nyomógombos interfész áramkör
Amint azt az alábbi sematikus ábrán láthatjuk, a fejlesztői panelen lévő teszt LED az 1.4 portra csatlakozik, és egy további LED az 1.5 portra van csatlakoztatva. Az R3 ellenállást a LED áramának korlátozására használják.
Az 1.6-os tűnél egy SW nevű nyomógomb van csatlakoztatva. Amikor a gombot megnyomják, a tű magas lesz. Ellenkező esetben a 4,7K R1 R1 ellenállással alacsony lesz. Tudjon meg többet a felhúzható és lehúzható ellenállásokról, ha még nem ismeri ezt a koncepciót.
A pin egy programmal kapcsolatos pin is, amelyhez a programozó hozzáfér. Programadatok küldésére szolgál. Meglátjuk azonban a csapok kiválasztásának okát, valamint tisztességes információkat kapunk az N76E003 tűkiosztásáról.
N76E003 Kihúzható ábra
Az N76E003 csapdiagramja látható az alábbi kép-
Mint láthatjuk, minden egyes tűnek több funkciója van, és különböző célokra használható. Vegyünk egy példát. Az 1.7 érintkező megszakításként, analóg bemenetként vagy általános célú bemenet-kimenetként használható. Tehát, ha bármilyen tűt használnak I / O csapokként, akkor a megfelelő funkció nem lesz elérhető.
Ennek köszönhetően az 1.5 tű, amelyet LED kimeneti tűként használnak, elveszíti a PWM-et és más funkciókat. De ez nem jelent problémát, mivel ehhez a projekthez nincs szükség más funkciókra. Az oka annak, hogy az 1.5-ös tűt választja kimenetnek és az 1,6-os tűt bemenetnek, mivel a GND és a VDD csapok a lehető legközelebb állnak rendelkezésre a könnyű csatlakoztatás érdekében.
Ebben a mikrokontrollerben azonban a 20 érintkezőből 18 érintkező használható GPIO tűként. A 2.0 tűt kifejezetten a Reset bemenethez használják, és nem használható kimenetként. Ezen a csapon kívül az összes érintkező konfigurálható az alábbiakban leírt módban.
Az adatlap szerint a PxM1.n és a PxM2.n két regiszter, amelyek az I / O port vezérlési működésének meghatározására szolgálnak. Most egy egészen más dolog a GPIO-port megírása és olvasása. Mivel a portvezérlő nyilvántartásba történő írás megváltoztatja a port reteszelő állapotát, míg a port olvasása a logikai állapot állapotát kapja meg. De egy port olvasásához be kell állítani egy bemeneti módba.
Egyszerű GPIO vezérlőprogram az N76E003 számára
Az oktatóanyagban használt teljes program az oldal alján található, a kód magyarázata a következő.
A tű beállítása bemenetként
Kezdjük először a bemenettel. Amint arról már korábban beszéltünk, a port állapotának beolvasásához be kell állítani azt. Ezért, mivel a P1.6-ot választottuk a bemeneti kapcsoló tűjévé, a kódrészlet alábbi során keresztül jelöltük.
#define SW P16
Ugyanezt a csapot kell bemenetként beállítani. Így a beállítási funkciónál a csapot az alábbi sor segítségével kell bemenetként beállítani.
void setup (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Ez a P16_Input_Mode sor ; a „BSP include library” Function_define.h fejlécfájljában van meghatározva, amely a pin-bitet P1M1- = SET_BIT6 értékre állítja; P1M2 & = ~ SET_BIT6 . A SET_BIT6 ugyanazt a fejlécfájlt definiálja, mint
#define SET_BIT6 0x40
A csapok beállítása kimenetként
A bemeneti tűvel megegyezően a fedélzeti teszt LED és a külső LED1 által használt kimeneti tű is meg van határozva a kód első szakaszában a megfelelő PIN-kódokkal.
#define Test_LED P14 #define LED1 P15
Ezeket a csapokat a beállítási funkció kimeneteként állítja be az alábbi sorok segítségével.
void setup (void) { P14_Quasi_Mode; // P15_Quasi_Mode kimenet; // Output P16_Input_Mode; }
Ezeket a sorokat a Function_define.h fejlécfájl is meghatározza, ahol a pin bitet P1M1- ként állítja be = = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . A SET_BIT6 ugyanazt a fejlécfájlt definiálja, mint
#define SET_BIT4 0x10
Végtelen Míg hurok
Ha az áramellátáshoz csatlakoztatva van és tökéletesen működik egy hardver, amelynek folyamatosan kimenetet kell adnia, az alkalmazás soha nem áll le. Végtelen időkig ugyanezt csinálja. Itt jön a végtelen, míg a hurok funkciója. Az alkalmazás a while cikluson belül végtelenül fut.
míg (1) { Teszt_LED = 0; késleltetés (150); Teszt_LED = 1; késleltetés (150); if (SW == 1) {LED1 = 0; } else {LED1 = 1; }}}
A fenti ciklus villogja a ledet az sw_delay értéknek megfelelően, és ellenőrzi az SW állapotát is. Ha megnyomja a kapcsolót, a P1.6 magas lesz, így amikor megnyomja, az olvasási állapot 1 lesz. Ebben a helyzetben egy ideig a kapcsolót megnyomják és a P1.6 port magas marad, a A LED1 világítani fog.
N76E003 programozása és a kimenet ellenőrzése
Az N76E003 oktatóanyag használatának megkezdésében megtanultuk, hogyan kell már programozni az N76E003-at, ezért itt megismételjük ugyanazokat a lépéseket a táblánk programozásához. A kód sikeresen összeállt és 0 figyelmeztetést és 0 hibát adott vissza, és a Keil alapértelmezett villogó módszerével villant.
Amint a fenti képen látható, a külső LED -ünk bekapcsol, amikor megnyomom a nyomógombot. A projekt teljes kidolgozása az alábbi linken található videóban található. Remélem, hogy tetszett az oktatóanyag, és valami hasznosat tanult, ha bármilyen kérdése van, hagyja őket az alábbi megjegyzés részben. Fórumunkat felhasználhatja egyéb technikai kérdések feltevésére is.