TWI - EEPROM в ATXmega384C3

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
Chip_step
Родился
Сообщения: 19
Зарегистрирован: Сб янв 30, 2021 16:34:46

TWI - EEPROM в ATXmega384C3

Сообщение Chip_step »

Hi! можно ли I2c - библиотеку прикрутить к TWI ATXmega384?
код:

Код: Выделить всё

#define EEPROM_BUS_ADDRESS 0xa0
unsigned char eeplc24_read(unsigned char address_high, unsigned char address_low) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address_high);
i2c_write(address_low);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}

void eeplc24_write(unsigned char address_high, unsigned char address_low, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address_high);
i2c_write(address_low);
i2c_write(data);
i2c_stop();
}



TWI XMEGA
код инициализации:

Код: Выделить всё


// TWIC initialization
// structure that holds information used by the TWIC Master
// for performing a TWI bus transaction
TWI_MASTER_INFO_t twic_master;

void twic_init(void)
{
// General TWIC initialization
// External Driver Interface: Off
// SDA Hold: 400 ns
twi_init(&TWIC,false,TWI_SDAHOLD_400NS_gc);

// TWIC Master initialization
// Master interrupt: Low Level
// Peripheral Clock frequency: 32000000 Hz
// SCL Rate: 100000 bps
// Real SCL Rate: 100000 bps, Error: 0,0 %
twi_master_init(&twic_master,&TWIC,TWI_MASTER_INTLVL_LO_gc,
    TWI_BAUD_REG(32000000,100000));

// TWIC Slave is disabled
TWIC.SLAVE.CTRLA=0;
}

// TWIC Master interrupt service routine
#pragma optsize- // optimize for speed
interrupt [TWIC_TWIM_vect] void twic_master_isr(void)
{
twi_master_int_handler(&twic_master);
}
#pragma optsize_default

twic_init();

Реклама
Ответить

Вернуться в «AVR»