Forum: FPGA, VHDL & Co. GPIO DiscreteWrite


von User (Gast)


Lesenswert?

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?

von Klaus F. (kfalser)


Lesenswert?

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
Noch kein Account? Hier anmelden.