/* Zápis do paměti eeprom podle určeného protokolu. */ void eeprom_write(){ while(eeprom_lenght >= PROTOCOL_LENGTH){ if(eeprom_buffer[count] == CONFIG_CHAR){ Chip_EEPROM_Write(LPC_EEPROM, 0, PAGE_ADDR, eeprom_buffer + count, EEPROM_RWSIZE_8BITS, eeprom_lenght - count); memset(eeprom_buffer,0,eeprom_lenght); // Vynulování dat v bufferu eeprom_lenght = 0; count = 0; } else{ count++; } } }
/** * @brief main routine for EEPROM example * @return Always returns 0 */ int main(void) { uint8_t *ptr = (uint8_t *) buffer; uint8_t ret_code; /* Generic Initialization */ SystemCoreClockUpdate(); Board_Init(); /* Enable SysTick Timer */ SysTick_Config(SystemCoreClock / TICKRATE_HZ); /* Enable EEPROM clock and reset EEPROM controller */ Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_EEPROM); Chip_SYSCTL_PeriphReset(RESET_EEPROM); /* Data to be read from EEPROM */ ret_code = Chip_EEPROM_Read(EEPROM_ADDRESS, ptr, IAP_NUM_BYTES_TO_READ_WRITE); /* Error checking */ if (ret_code != IAP_CMD_SUCCESS) { DEBUGOUT("Command failed to execute, return code is: %x\r\n", ret_code); } /* Check and display string if it exists */ ShowString((char *) ptr); /* Get a string to save */ MakeString(ptr); /* Data to be written to EEPROM */ ret_code = Chip_EEPROM_Write(EEPROM_ADDRESS, ptr, IAP_NUM_BYTES_TO_READ_WRITE); /* Error checking */ if (ret_code == IAP_CMD_SUCCESS) { DEBUGSTR("EEPROM write passed\r\n"); } else { DEBUGOUT("EEPROM write failed, return code is: %x\r\n", ret_code); } return 0; }
// Write config to EEPROM void writeConfigToEEPROM(void){ Chip_EEPROM_Write(0x00000000, (uint8_t *)&daq, sizeof(daq)); }