Gast
#3483545
Hallo, ich habe einen Microbalze aufgesetzt, bei dem ich im Moment bei meinem Spartan3AN Board die Stellung der Switches mit den LEDs anzeige. Das funktioniert mit folgendem Code sehr gut: #include "platform.h" #include "xparameters.h" #include "xgpio.h" int main() { init_platform(); Xuint32 value; Xuint32 stop; XGpio gpio_led; XGpio gpio_switch; XGpio gpio_stop; XGpio_Initialize(&gpio_led, XPAR_LEDS_8BIT_DEVICE_ID); XGpio_Initialize(&gpio_switch, XPAR_DIPS_4BIT_DEVICE_ID); XGpio_Initialize(&gpio_stop, XPAR_BTNS_4BIT_DEVICE_ID); XGpio_SetDataDirection(&gpio_led, 1, 0x00000000); XGpio_SetDataDirection(&gpio_switch, 1, 0xffffffff); XGpio_SetDataDirection(&gpio_stop, 1, 0xffffffff); while(1) { value = XGpio_DiscreteRead(&gpio_switch, 1); XGpio_DiscreteWrite(&gpio_led, 1 , value); stop = XGpio_DiscreteRead(&gpio_stop,1); if(stop == 0x01) { break; } } cleanup_platform(); return 0; } Meine erste Frage wäre nun, was genau macht denn die XGpio_SetDataDirection() Methode? Denn eigentlich kann ich hier denn Hex-Wert setzen wie ich möchte, oder sie ganz weg lassen. Das Programm funktioniert so oder so. Als nächstes würde ich gerne die drei Gpio Instanzen für LEDs, Switches und den Stop Button durch nur einer Gpio Instanz ersetzen. Das müsste doch irgendwie gehen, wegen 32Bit System. Ich weiss dazu unter anderem nicht wie ich dieses Gpio dann Initialisieren kann, damit nur 7 Register für die LEDS, 4 Register für die Switches und 4 Register für die Buttons hergenommen werden. Und wie verschachtel ich dazu die Device_Ids? Bis jetzt habe ich immer die Device_IDs aus der xparameters.h hergenommen. Muss man evt. was in XPS ändern? Ich verwende ISE 13.4 zur Programmierung. Danke schon mal für eure Hilfe. Mirco