FPGA_VIVADO_SI_VHDL_Mihael_Cristian_Ignat

(Cristian I.K_ntXI) #1
91

Toate acestea fiind spuse, pentru ca pinii corespunzători ledurilor să fie de ieșire, vor trebui transmise
către pinii T ai bufferelor corespunzători ledurilor, valori de ‘0’. Astfel, linia de cod _XGpio_SetDataDirection
(&Gpio, LEDCHANNEL, ~LED) va trebui modificată cu _XGpio_SetDataDirection (&Gpio, LEDCHANNEL,
0xFFF0).

Această modificare va transmite valoarea 0 la cei 4 pini și, astfel, cele 4 leduri vor putea fi controlate cu
valoarea transmisă de procesor prin funcția XGpio_DiscreteWrite. Prin înlocuirea liniei de cod
XGpio_DiscreteClear(&Gpio, LED_CHANNEL, ~LED) din cod cu codul următor, ledurile vor lumina pe rând
astfel: prima dată luminează ledul 0, iar ledurile 1, 2 și 3 sunt stinse, apoi ledul 0 va fi stins și vor lumina
ledurile 1, 2 și 3, această secvență fiind repetitivă: XGpio_DiscreteWrite(&Gpio, LED_CHANNEL, ~LED);


Un fișier important ce se găsește în proiect este xparameters.h. Acesta se găsește în Project Explorer - >
test_bsp - > microblaze_0 - > include și în el se găsesc informații legate de partea hardware, cum ar fi:
frecvența de funcționare a MicroBlaze, dimensiunea memoriei folosite, adresele de start ale fiecărui
periferic, dar și ID-ul perifericului adăugat.


Fig. 118: Locația xparameters.h

Astfel, în acest exemplu se folosește linia de cod următoare, care face inițializarea GPIO-ului de leduri:

Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);

Dacă o să căutăm, vom observa că GPIO_EXAMPLE_DEVICE_ID este un macro definit ca fiind
XPAR_GPIO_0_DEVICE_ID, însă acesta din urmă este definit în fișierul xparameters.h, iar, într-un final, vom
observa că acesta este 0.


Vom modifica fișierul helloworld.c din Project Explorer -> test -> src astfel încât fiecare led să fie
controlat de către un switch. Pentru aceasta, va fi recomandată copierea conținutului din fișierul
xgpio_example.c în helloworld.c, iar apoi, pentru a nu ne încurca, proiectul cu numele
test_bsp_xgpio_example_1 va putea fi șters dând click dreapta pe el, iar apoi Delete. Dacă se dorește
ștergerea totală, trebuie bifată căsuța “Delete project contents on desk”.

Free download pdf