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”.