LPC_EEPROM->CLKDIV = 1500 / (EEPROM_CLOCK_DIV-1); // 31 ; //EEPROM clock=1500 KHz LPC_EEPROM->RWSTATE = (1500 / 28571429 + 1) | ((1500 / 14285714 + 1) << 8); //(0x3 | 0x5<<8); // Read waitstates. LPC_EEPROM->WSTATE = ((1500 / 50000000 + 1) << 16) | ((1500 / 25000000 + 1) << 8) | (1500 / 100000000 + 1); // (0x2 | 0x3<<8 | 0x2<<16); //EEPROM wait state register LPC_EEPROM->AUTOPROG = EEPROM_AUTOPROG_AFT_1WORDWRITTEN;//01 = erase/program cycle is triggered after 1 word is written |
EEPROM_Read(0,0,uint32_t_Buffer,4); uint32_t_Buffer[0] = 0xAA; uint32_t_Buffer[1] = 0xBB; uint32_t_Buffer[2] = 0xCC; uint32_t_Buffer[3] = 0xDD; uint32_t_Buffer[4] = 0xEE; uint32_t_Buffer[5] = 0xFF; uint32_t_Buffer[6] = 0x87; EEPROM_Write(0,0,uint32_t_Buffer,4); uint32_t_Buffer[0] = 0x00; uint32_t_Buffer[1] = 0x00; uint32_t_Buffer[2] = 0x00; uint32_t_Buffer[3] = 0x00; uint32_t_Buffer[4] = 0x00; uint32_t_Buffer[5] = 0x00; uint32_t_Buffer[6] = 0x00; EEPROM_Read(0,0,uint32_t_Buffer,4); |
void EEPROM_Read(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size) { uint32_t i = 0; uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset); for(i = 0; i < size/4; i++) { ptr = pEepromMem; } } void EEPROM_Write(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size) { uint32_t i = 0; uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset); if(size > EEPROM_PAGE_SIZE - pageOffset) { size = EEPROM_PAGE_SIZE - pageOffset; } for(i = 0; i < size/4; i++) { pEepromMem = ptr; } } |