Guten Abend. Ich habe drei GPIOs in ein Projekt mit EDK eingebunden. In SDK sehe ich diese auch: /* Definitions for peripheral AXI_GPIO_0 */ #define XPAR_AXI_GPIO_0_BASEADDR 0x40040000 #define XPAR_AXI_GPIO_0_HIGHADDR 0x4004FFFF #define XPAR_AXI_GPIO_0_DEVICE_ID 0 #define XPAR_AXI_GPIO_0_INTERRUPT_PRESENT 0 #define XPAR_AXI_GPIO_0_IS_DUAL 0 /* Definitions for peripheral AXI_GPIO_1 */ #define XPAR_AXI_GPIO_1_BASEADDR 0x40020000 #define XPAR_AXI_GPIO_1_HIGHADDR 0x4002FFFF #define XPAR_AXI_GPIO_1_DEVICE_ID 1 #define XPAR_AXI_GPIO_1_INTERRUPT_PRESENT 1 #define XPAR_AXI_GPIO_1_IS_DUAL 1 /* Definitions for peripheral AXI_GPIO_2 */ #define XPAR_AXI_GPIO_2_BASEADDR 0x40000000 #define XPAR_AXI_GPIO_2_HIGHADDR 0x4000FFFF #define XPAR_AXI_GPIO_2_DEVICE_ID 2 #define XPAR_AXI_GPIO_2_INTERRUPT_PRESENT 1 #define XPAR_AXI_GPIO_2_IS_DUAL 1 Ich habe nun folgendes gemacht: #include "xgpio.h" XGpio gpio_instance; XGpio_Initialize(&gpio_instance,XPAR_AXI_GPIO_0_DEVICE_ID); XGpio_Initialize(&gpio_instance,XPAR_AXI_GPIO_1_DEVICE_ID); XGpio_Initialize(&gpio_instance,XPAR_AXI_GPIO_2_DEVICE_ID); XGpio_DiscreteWrite(&gpio_instance,XPAR_AXI_GPIO_0_DEVICE_ID, data); XGpio_DiscreteWrite(&gpio_instance,XPAR_AXI_GPIO_1_DEVICE_ID, data); XGpio_DiscreteWrite(&gpio_instance,XPAR_AXI_GPIO_2_DEVICE_ID, data); Es funktioniert nicht. Verwende ich die Write Funktion richtig?
Zuerst einmal brauchts Du ein Feld von 3 XGpio Variablen, für jede GPIO eine. XGpio_Initialize(&gpio_instance[0],XPAR_AXI_GPIO_0_DEVICE_ID); Und bist Du sicher, dass der 2. Parameter von XGpio_DiscreteWrite XPAR_AXI_GPIO_0_DEVICE_ID ist? Die GPIO wird über den Parameter 1 (&gpio_instance[x]) identifiziert, der 2 Parameter wird eher das Register in der GPIO sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.