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.
:
Bearbeitet durch User
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.