Getting initializer element is not constant when trying to init I2C
Posted: Sun Feb 05, 2017 5:10 pm
Hello guys,
I'm having problems using shared I2C module for two 1 bit ports on X216. When I try to define structure containing I2C ports like this:
I'm getting initializer element is not constant error on the struct r_i2c... line.
Any idea where I'm making a mistake?
Thank you.
I'm having problems using shared I2C module for two 1 bit ports on X216. When I try to define structure containing I2C ports like this:
Code: Select all
#include "es9038q2m.h"
#define DAC_REGWRITE(reg, val) {data[0] = val; i2c_shared_master_write_reg(i2c_dac, ES9028M_I2C_ADDR, reg, data, 1);}
#define DAC_REGWRITE_MONO(reg, val) {data[0] = val; i2c_shared_master_write_reg(i2c_dac, ES9028M_I2C_ADDR_MONO, reg, data, 1);}
#define DAC_REGREAD(reg, val) {i2c_shared_master_read_reg(i2c_dac, ES9028M_I2C_ADDR, reg, val, 1);}
#define EEPROM_ADDRWRITE(addr, val) {data[0] = val; i2c_shared_master_write_reg(i2c_dac, E24AA02_ADDR, addr, data, 1);}
#define EEPROM_ADDRREAD(addr, val) {i2c_shared_master_read_reg(i2c_dac, E24AA02_ADDR, addr, val, 1);}
on tile [0] : port p_scl = PORT_I2C_SCK;
on tile [0] : port p_sda = PORT_I2C_SDA;
struct r_i2c i2c_dac = {p_sda, p_scl};
on tile [0] : out port p_dac = PORT_T0_CONTROL;
void DAC_init(void)
{
unsigned char data[1] = {0};
i2c_shared_master_init(i2c_dac);
...
Any idea where I'm making a mistake?
Thank you.