سلام به همگی، یال نو همه مبارک و برای همه در سال 1390 سالی پربار و علمی آرزو میکنم.
مشکل من در نوشتن بر روی eeprom هست. من از eeprom تونستم بخونم اما نمی تونم روش بنویسم لطفا یکی کمک کنه بگه ایراد کار من کجاست.
با تشکر
بهادر
مشکل من در نوشتن بر روی eeprom هست. من از eeprom تونستم بخونم اما نمی تونم روش بنویسم لطفا یکی کمک کنه بگه ایراد کار من کجاست.
#define SL_ADDR 0xA0
void TWI_MasterInit(uint8_t baudRateRegisterSetting)
{
TWIC_MASTER_CTRLA = TWI_MASTER_RIEN_bm |
TWI_MASTER_WIEN_bm |
TWI_MASTER_ENABLE_bm;
TWIC_MASTER_BAUD = baudRateRegisterSetting;
TWIC_MASTER_STATUS = TWI_MASTER_BUSSTATE_IDLE_gc;
}
void TWI_MasterInit(uint8_t baudRateRegisterSetting)
{
TWIC_MASTER_CTRLA = TWI_MASTER_RIEN_bm |
TWI_MASTER_WIEN_bm |
TWI_MASTER_ENABLE_bm;
TWIC_MASTER_BAUD = baudRateRegisterSetting;
TWIC_MASTER_STATUS = TWI_MASTER_BUSSTATE_IDLE_gc;
}
TWIC.MASTER.ADDR = SL_ADDR & ~0x01;
while (!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm) || (TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC.MASTER.DATA = 0x00;
while (!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm) || (TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC_MASTER_CTRLC = TWI_MASTER_CMD_RECVTRANS_gc;
TWIC.MASTER.DATA = 0x46;
while ((TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC.MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;
while (!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm) || (TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC.MASTER.DATA = 0x00;
while (!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm) || (TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC_MASTER_CTRLC = TWI_MASTER_CMD_RECVTRANS_gc;
TWIC.MASTER.DATA = 0x46;
while ((TWIC.MASTER.STATUS & TWI_SLAVE_RXACK_bm));
TWIC.MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;
با تشکر
بهادر
دیدگاه