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.

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