- Postavljanje i zahtjev hardvera
- N76E003 Krug sučelja za LED i tipke
- N76E003 Dijagram izvlačenja
- Jednostavni GPIO upravljački program za N76E003
- Programiranje N76E003 i provjera rezultata
U našem prethodnom uputstvu koristili smo osnovni LED program za treptanje kao početak rada s vodičem N76E003, već smo naučili kako konfigurirati Keil IDE i postaviti okruženje za programiranje nuvoton jedinice mikrokontrolera N76E003. Vrijeme je da se pomaknemo malo dalje i upotrijebimo osnovno GPIO sučelje za kontrolu dodatnog hardvera. Ako ste zainteresirani, možete provjeriti i druge GPIO vodiče za mikrokontrolere koji su dolje navedeni-
- STM32 Nucleo64 s CubeMxom i TrueSTUDIO - LED kontrola
- STM8S s Cosmic C GPIO kontrolom
- PIC s MPLABX LED vodičem za treptanje
- MSP430 s Code Composer Studio - Jednostavno upravljanje LED-om
Budući da smo u prethodnom tutorialu koristili samo LED da trepće koristeći IO pin kao izlaz. U ovom uputstvu naučit ćemo kako koristiti drugi IO pin kao ulaz i kontrolirati dodatnu LED diodu. Ne trošeći puno vremena, procijenimo kakvu postavku hardvera trebamo.
Postavljanje i zahtjev hardvera
Kako prekidač treba koristiti kao ulaz, prvo što trebamo je tipkalo. Također nam je potrebna dodatna LED dioda kojom će se upravljati pomoću tog gumba. Osim ove dvije, također nam je potreban otpor za ograničavanje LED struje i dodatni otpor za povlačenje preko tipke. To će biti dalje prikazano u shematskom odjeljku. Komponente koje trebamo -
- Tipka (bilo koja vrsta trenutnog prekidača - taktilni prekidač)
- Bilo koja boja LED diode
- Otpornik 4.7k za padajuće svrhe
- Otpornik 100R
Da ne spominjem, osim gore navedenih komponenata, trebamo razvojnu ploču na bazi mikrokontrolera N76E003, kao i Nu-Link programer. Uz to, za spajanje svih komponenata potrebne su i žice za pločice i spojne žice, kao što je prikazano u nastavku.

N76E003 Krug sučelja za LED i tipke
Kao što možemo vidjeti na donjoj shemi, ispitna LED dioda koja se nalazi unutar razvojne ploče spojena je na priključak 1.4, a dodatni LED dioda povezan je na priključak 1.5. Otpornik R3 služi za ograničavanje LED struje.

U pin 1.6 spojen je gumb s imenom SW. Kad god pritisnete gumb, pin će postati visok. U suprotnom će pasti 4.7K padajući otpor R1. Ako ste novi u ovom konceptu, možete saznati više o vučnim i spuštajućim otpornicima.
Pin je također i programski povezan pin koji programeru pristupa. Koristi se za slanje podataka o programu. Međutim, vidjet ćemo razlog izabiranja tih pinova, kao i fer informacije o mapiranju pinova N76E003.
N76E003 Dijagram izvlačenja
Pin dijagram N76E003 može se vidjeti u nastavku IMIDŽ

Kao što vidimo, svaki pin ima više funkcija i može se koristiti u različite svrhe. Uzmimo primjer. Pin 1.7 može se koristiti kao prekid ili analogni ulaz ili kao općenito ulazno-izlazna operacija. Dakle, ako se bilo koji pin koristi kao I / O pinovi, tada odgovarajuća funkcionalnost neće biti dostupna.
Zbog toga će pin 1.5 koji se koristi kao LED izlazni pin izgubiti PWM i ostale funkcije. Ali to nije problem jer za ovaj projekt nije potrebna druga funkcionalnost. Razlog izabiranja pina 1.5 kao izlaza i pina 1.6 kao ulaza, zbog najbliže dostupnosti GND i VDD pinova za jednostavno povezivanje.
Međutim, u ovom mikrokontroleru od 20 pinova 18 pinova može se koristiti kao GPIO pinova. Pin 2.0 namjenski se koristi za resetiranje ulaza i ne može se koristiti kao izlaz. Osim ovog pina, sve se igle mogu konfigurirati u dolje opisanom načinu.

Prema tablici podataka, PxM1.n i PxM2.n su dva registra koja se koriste za određivanje kontrolnog rada I / O porta. Sada je potpuno druga stvar pristup pisanju i čitanju GPIO porta. Budući da upisivanje u registar lučke kontrole mijenja stanje zaključavanja luke, dok čitanje porta dobiva status logičkog stanja. Ali za čitanje porta, mora se postaviti u način unosa.
Jednostavni GPIO upravljački program za N76E003
Kompletni program korišten u ovom vodiču nalazi se na dnu ove stranice, objašnjenje koda je sljedeće.
Postavljanje pina kao ulaza
Krenimo prvo s unosom. Kao što je prethodno spomenuto, da bi se očitao status porta, treba ga postaviti kao ulaz. Stoga smo, budući da smo odabrali P1.6 kao naš ulazni prekidač, označili ga kroz donji redak isječka koda.
#define SW P16
Isti taj pin treba postaviti kao ulaz. Dakle, na funkciji postavljanja, pin se postavlja kao ulaz pomoću donjeg retka.
void postavljanje (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Ovaj redak P16_Input_Mode; definiran je u datoteci zaglavlja Function_define.h u “BSP include library” koja postavlja pin bit kao P1M1- = SET_BIT6; P1M2 & = ~ SET_BIT6 . SET_BIT6 je također definiran u istom zaglavlju datoteke su-
#define SET_BIT6 0x40
Postavljanje pinova kao izlaza
Jednako kao ulazni pin, izlazni pin koji koriste ugrađena ispitna LED i vanjski LED1 također je definiran u prvom odjeljku koda s odgovarajućim PIN-ovima.
#define Test_LED P14 #define LED1 P15
Te se igle postavljaju kao izlaz u funkciji postavljanja pomoću donjih redaka.
void postavljanje (void) { P14_Quasi_Mode; // izlaz P15_Quasi_Mode; // izlaz P16_Input_Mode; }
Ovi su retci također definirani u zaglavlju datoteke Function_define.h gdje postavlja pin bit kao P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 je također definiran u istom zaglavlju datoteke su-
#define SET_BIT4 0x10
Beskonačna dok petlja
Hardver, ako je povezan s napajanjem i radi savršeno, a koji bi trebao kontinuirano davati izlaz, aplikacija se nikada neće zaustaviti. To čini istu stvar u beskrajna vremena. Ovdje dolazi funkcija beskonačne while petlje. Aplikacija unutar while petlje radi beskonačno.
dok (1) { Test_LED = 0; sw_delay (150); Test_LED = 1; sw_delay (150); ako je (SW == 1) {LED1 = 0; } else {LED1 = 1; }}}
Gornja while petlja treperi led prema vrijednosti sw_delay i također provjerava status SW-a. Ako se pritisne prekidač, P1.6 će biti visok, pa će, kada se pritisne, status očitanja biti 1. U ovoj situaciji, trenutno, prekidač je pritisnut i port P1.6 ostaje visok, LED1 će svijetliti.
Programiranje N76E003 i provjera rezultata
U našem početku rada s vodičem za N76E003 naučili smo kako već programirati N76E003, pa ćemo ovdje ponoviti iste korake za programiranje naše ploče. Kôd je uspješno preveden i vratio je 0 upozorenja i 0 pogrešaka i bljesnuo je pomoću zadane metode treptanja od strane Keila.

Kao što vidite na gornjoj slici, naša se vanjska LED lampica uključuje kad pritisnem tipku. Cjelovit rad projekta možete pronaći u videu dolje povezanom. Nadamo se da ste uživali u vodiču i naučili nešto korisno ako imate pitanja, ostavite ih u odjeljku za komentare u nastavku. Naše forume možete koristiti i za postavljanje drugih tehničkih pitanja.

