6. Vaja: Tipke in aplikacija
V sistem iz prejšnje vaje bomo dodali povezavo na tipke na razvojni plošči in napisali bomo kodo v jeziku C za branje tipk in risanje črt.
Naloga
- Odpri blokovni diagram in dvakrat klikni na procesorsko komponento, da se odpre okno z nastavitvami. Izberi MIO Configuration in s klikom na + odpri I/O Peripherals. Klikni na + GPIO in dodaj kljukico na EMIO GPIO, nastavi širino (Width) na 4 in na koncu potrdi z OK.
- Na blokovnem diagramu klikni z desnim gumbom na priključek procesorja GPIO_0 in izberi Make External, da se povežejo še EMIO GPIO signali na zunanje priključke, nato pa klikni na simbol zunanjega priključka (petkotnik) z levim gumbom in v okencu External Interface Properties spremeni ime priključka v: tipke.
- V oknu s hierarhijo projekta odpri datoteko z nastavitvami priključkov (+Constraints +constr_1 vga6.xdc) in dodaj vrstice za 4 zunanje tipke:
set_property PACKAGE_PIN R18 [get_ports tipke_tri_io[0]]; # BTNR
set_property IOSTANDARD LVCMOS25 [get_ports tipke_tri_io[0]]
set_property PACKAGE_PIN T18 [get_ports tipke_tri_io[1]]; # BTNU
set_property IOSTANDARD LVCMOS25 [get_ports tipke_tri_io[1]]
set_property PACKAGE_PIN N15 [get_ports tipke_tri_io[2]]; # BTNL
set_property IOSTANDARD LVCMOS25 [get_ports tipke_tri_io[2]]
set_property PACKAGE_PIN R16 [get_ports tipke_tri_io[3]]; # BTND
set_property IOSTANDARD LVCMOS25 [get_ports tipke_tri_io[3]]
- Shrani spremembe, prevedi sistem in ponovno izvozi prevedeno vezje: File > Export > Export Hardware, naredi kljukico na Include bitstream in OK.
Aplikacija
- Za dostop do tipk uporabimo funkcije gonilnika, ki so v knjižnici xgpiops.h
#include "xgpiops.h"// gonilnik za PS GPIO (tipke)
int main()
{
int t;
XGpioPs gp;
XGpioPs_Config *gpCfg;
// inicializacija PS GPIO
gpCfg = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
XGpioPs_CfgInitialize(&gp, gpCfg, gpCfg->BaseAddr);
t = XGpioPs_Read(&gp, 2); // branje stanja tipk, ki so na banki 2
...
}