- Namestitev in zahteva strojne opreme
- N76E003 Vmesniško vezje LED in gumba
- N76E003 Diagram pin-out
- Preprost nadzorni program GPIO za N76E003
- Programiranje N76E003 in preverjanje izhoda
V prejšnji vadnici smo kot uvod v vodnik N76E003 uporabili osnovni program za utripanje LED, že smo se naučili, kako konfigurirati IDE Keil in nastaviti okolje za programiranje mikrokrmilne enote nuvoton N76E003. Čas je, da se premaknete še malo naprej in uporabite osnovni vmesnik GPIO za nadzor dodatne strojne opreme. Če vas zanima, lahko preverite tudi druge vaje za mikrokrmilnik GPIO, ki so navedene spodaj -
- STM32 Nucleo64 s CubeMx in TrueSTUDIO - LED nadzor
- STM8S s Cosmic C GPIO Control
- PIC z MPLABX LED vadnico za utripanje
- MSP430 s Code Composer Studio - preprosto upravljanje LED
Ker smo v prejšnji vadnici LED uporabili le za utripanje, tako da smo za izhod uporabili IO pin. V tej vadnici bomo izvedeli, kako uporabiti drug IO pin kot vhod in upravljati dodatno LED. Ne da bi zapravili veliko časa, ocenimo, kakšno nastavitev strojne opreme potrebujemo.
Namestitev in zahteva strojne opreme
Ker je treba kot vhod uporabiti stikalo, najprej potrebujemo gumb. Za nadzor s tem gumbom potrebujemo tudi dodatno LED. Razen teh dveh zahtevamo tudi upor za omejevanje toka LED in dodaten upor za spuščanje po tipki. To bo nadalje prikazano v shematskem razdelku. Komponente, ki jih potrebujemo -
- Tipka (kakršno koli trenutno stikalo - tipalno stikalo)
- Vsaka barva LED
- 4.7k upor za spustne namene
- Upor 100R
Da ne omenjam, razen zgoraj navedenih komponent potrebujemo razvojno ploščo na osnovi mikrokrmilnika N76E003 in Nu-Link programer. Poleg tega so za povezavo vseh komponent, kot je prikazano spodaj, potrebne tudi žice za pritrditev in priključne žice.
N76E003 Vmesniško vezje LED in gumba
Kot lahko vidimo na spodnji shemi, je testna LED, ki je znotraj razvojne plošče, priključena na vrata 1.4, dodatna LED pa na vrata 1.5. Upor R3 se uporablja za omejevanje toka LED.
V pin 1.6 je priključen gumb z imenom SW. Kadarkoli pritisnete gumb, se zatič postavi visoko. V nasprotnem primeru bo padajoči upor R1 4.7K znižal. Če ste nov v tem konceptu, lahko izveste več o pull-up in pull-down uporih.
Zatič je tudi programsko povezan zatič, do katerega dostopa programer. Uporablja se za pošiljanje programskih podatkov. Vendar bomo videli razlog za izbiro teh nožic in dobili poštene informacije o preslikavi nožic N76E003.
N76E003 Diagram pin-out
Zatič diagram N76E003 je razvidno iz spodnje image-
Kot lahko vidimo, ima vsak zatič več funkcij in se lahko uporablja za različne namene. Vzemimo primer. Zatič 1.7 se lahko uporablja kot prekinitev ali analogni vhod ali kot vhodno-izhodna operacija za splošno uporabo. Če se torej kateri koli zatič uporablja kot vhodno / izhodni zatiči, ustrezna funkcionalnost ne bo na voljo.
Zaradi tega bo zatič 1.5, ki se uporablja kot LED izhodni zatič, izgubil PWM in druge funkcije. Toda to ni problem, saj za ta projekt ni potrebna druga funkcionalnost. Razlog za izbiro pin 1,5 kot izhoda in pin 1,6 kot vhod, zaradi najbližje razpoložljivosti zatičev GND in VDD za enostavno povezavo.
Vendar pa je v tem mikrokrmilniku od 20 zatičev 18 zatičev mogoče uporabiti kot zatič GPIO. Zatič 2.0 je namensko uporabljen za ponastavitev vhoda in ga ni mogoče uporabiti kot izhod. Razen tega zatiča lahko vse zatiče nastavite v spodaj opisanem načinu.
Glede na podatkovni list sta PxM1.n in PxM2.n dva registra, ki se uporabljata za določanje nadzornega delovanja V / I vrat. Zdaj je pisanje in branje vrat GPIO povsem druga stvar. Ker zapisovanje v register nadzora vrat spremeni stanje zaklepanja vrat, medtem ko branje vrat dobi status logičnega stanja. Za branje vrat pa ga je treba nastaviti v način vnosa.
Preprost nadzorni program GPIO za N76E003
Celoten program, uporabljen v tej vadnici, najdete na dnu te strani, razlaga kode pa je naslednja.
Nastavitev zatiča kot vhoda
Najprej začnimo z vnosom. Kot smo že omenili, ga je treba za branje stanja vrat nastaviti kot vhod. Ker smo za vhodno stikalo izbrali P1.6, smo ga označili skozi spodnjo vrstico delčka kode.
#define SW P16
Ta isti pin mora biti nastavljen kot vhod. Tako je v nastavitveni funkciji zatič nastavljen kot vhod z uporabo spodnje vrstice.
void setup (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Ta vrstica P16_Input_Mode; je definirana v datoteki glave Function_define.h v “Knjižnica BSP vključuje”, ki nastavi bit kot P1M1- = SET_BIT6; P1M2 & = ~ SET_BIT6 . SET_BIT6 je opredeljena tudi v isti glavi datoteke so-
#define SET_BIT6 0x40
Nastavitev zatičev kot izhoda
Enako kot vhodni zatič, je tudi izhodni zatič, ki ga uporablja vgrajena testna LED in zunanja LED1, v prvem odseku kode definiran z ustreznimi PIN-i.
#define Test_LED P14 #define LED1 P15
Ti zatiči so nastavljeni kot izhod v nastavitveni funkciji z uporabo spodnjih vrstic.
void setup (void) { P14_Quasi_Mode; // izhod P15_Quasi_Mode; // izhod P16_Input_Mode; }
Te vrstice so definirane tudi v datoteki glave Function_define.h, kjer nastavi pin bit kot P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 je opredeljena tudi v isti glavi datoteke so-
#define SET_BIT4 0x10
Zanka neskončno medtem
Strojna oprema, če je povezana z električno energijo in deluje brezhibno, kar bi moralo neprestano dajati rezultate, se aplikacija nikoli ne ustavi. Enako počne za neskončne čase. Tu prihaja funkcija neskončne zanke while. Aplikacija znotraj zanke while deluje neskončno.
medtem ko (1) { Test_LED = 0; sw_delay (150); Test_LED = 1; sw_delay (150); če (SW == 1) {LED1 = 0; } sicer {LED1 = 1; }}}
Zgornja zanka while utripa led glede na vrednost sw_delay in preverja tudi status SW. Če pritisnete stikalo, bo P1.6 visok in tako bo ob pritisku stanje branja 1. V tem primeru je stikalo za čas pritisnjeno in vrata P1.6 ostanejo visoka, LED1 bo zasvetila.
Programiranje N76E003 in preverjanje izhoda
Ko smo začeli z vadnico N76E003, smo se naučili, kako že programirati N76E003, zato bomo le ponavljali iste korake tukaj, da programiramo našo tablo. Koda je bila uspešno prevedena in je vrnila 0 opozoril in 0 napak ter utripala s privzeto utripajočo metodo Keil.
Kot lahko vidite na zgornji sliki, se naša zunanja LED prižge, ko pritisnem na gumb. Celotno delovanje projekta najdete v spodnjem videoposnetku. Upam, da ste uživali v vadnici in se naučili kaj koristnega, če imate kakršna koli vprašanja, jih pustite v spodnjem oddelku za komentarje. Na naših forumih lahko uporabite tudi druga tehnična vprašanja.