Integrated version
Diff: BaseMachineUIController.h
- Revision:
- 11:a2a51191ebe4
- Parent:
- 10:a8ec7391a066
- Child:
- 12:d4e5feab3a2d
--- a/BaseMachineUIController.h Fri Nov 25 12:13:01 2016 +0000 +++ b/BaseMachineUIController.h Fri Nov 25 16:03:31 2016 +0000 @@ -317,12 +317,12 @@ switch (spareValue) { case 1: saveToEEPROM(); - Thread::wait(100); + //Thread::wait(100); isDirty = true; break; case 2: loadFromEEPROM(); - Thread::wait(100); + //Thread::wait(100); isDirty = true; break; } @@ -669,45 +669,49 @@ #if (UART_TRACE_EEPROM) printf("*** Save Sequences to EEPROM ***\r\n"); - printf("sequencePattern: %d\r\n", sequencePattern); - for (int i = 0; i < SEQUENCE_N; i++) { - printf("%d %d %03d %d %d\r\n", - i, - sequences[sequencePattern][i].isNoteOn(), - sequences[sequencePattern][i].getPitch(), - sequences[sequencePattern][i].isTie(), - sequences[sequencePattern][i].isAccent() - ); + for (int j = 0; j < PATTERN_N; j++) { + printf("sequencePattern: %d\r\n", j); + for (int i = 0; i < SEQUENCE_N; i++) { + printf("%d %d %03d %d %d\r\n", + i, + sequences[j][i].isNoteOn(), + sequences[j][i].getPitch(), + sequences[j][i].isTie(), + sequences[j][i].isAccent() + ); + } } #endif uint8_t eep_buff[258]; - uint8_t cnt = 0; - for (int i = 0; i < SEQUENCE_N; i++) { - eep_buff[cnt++] = sequences[sequencePattern][i].isNoteOn(); - eep_buff[cnt++] = ((sequences[sequencePattern][i].getPitch() & 0xff00) >> 8); // MSB - eep_buff[cnt++] = sequences[sequencePattern][i].getPitch() & 0xff; // LSB - eep_buff[cnt++] = sequences[sequencePattern][i].isTie(); - eep_buff[cnt++] = sequences[sequencePattern][i].isAccent(); + for (int j = 0; j < PATTERN_N; j++) { + uint8_t cnt = 0; + for (int i = 0; i < SEQUENCE_N; i++) { + eep_buff[cnt++] = sequences[j][i].isNoteOn(); + eep_buff[cnt++] = ((sequences[j][i].getPitch() & 0xff00) >> 8); // MSB + eep_buff[cnt++] = sequences[j][i].getPitch() & 0xff; // LSB + eep_buff[cnt++] = sequences[j][i].isTie(); + eep_buff[cnt++] = sequences[j][i].isAccent(); + } + #if (UART_TRACE_EEPROM) + printf("size: %d\r\n", cnt); + #endif + /* + for (int i = 0; i < cnt; i++) { + printf("%d: %d\r\n", i, eep_buff[i]); + } + */ + uint32_t addr_page_top = j << 8; + printf("address: %x\r\n", addr_page_top); + AT24C_STATUS status = At24c1024->write_page( + addr_page_top, + eep_buff, + sizeof(eep_buff) + ); + #if (UART_TRACE_EEPROM) + printf("status: %d\r\n", status); + #endif } - #if (UART_TRACE_EEPROM) - printf("size: %d\r\n", cnt); - #endif - - /* - for (int i = 0; i < cnt; i++) { - printf("%d: %d\r\n", i, eep_buff[i]); - } - */ - - AT24C_STATUS status = At24c1024->write_page( - 0x00000, - eep_buff, - sizeof(eep_buff) - ); - #if (UART_TRACE_EEPROM) - printf("status: %d\r\n", status); - #endif gLCD->drawstring(0, 1, " Done"); gLCD->display(); @@ -728,46 +732,54 @@ #endif uint8_t eep_buff[258]; - - AT24C_STATUS status = At24c1024->read_page( - 0x00000, - eep_buff, - sizeof(eep_buff) - ); - #if (UART_TRACE_EEPROM) - printf("status: %d\r\n", status); - #endif + for (int j = 0; j < PATTERN_N; j++) { + uint32_t addr_page_top = j << 8; + AT24C_STATUS status = At24c1024->read_page( + addr_page_top, + eep_buff, + sizeof(eep_buff) + ); + + #if (UART_TRACE_EEPROM) + printf("status: %d\r\n", status); + #endif - /* - for (int i = 0; i < 80; i++) { - printf("%d: %d\r\n", i, eep_buff[i]); - } - */ + /* + for (int i = 0; i < 80; i++) { + printf("%d: %d\r\n", i, eep_buff[i]); + } + */ - uint8_t cnt = 0; - for (int i = 0; i < SEQUENCE_N; i++) { - sequences[sequencePattern][i].setNoteOn(eep_buff[cnt++]); - int pitch = eep_buff[cnt++] << 8; // MSB - pitch |= eep_buff[cnt++]; // LSB - sequences[sequencePattern][i].setPitch(pitch); - sequences[sequencePattern][i].setTie(eep_buff[cnt++]); - sequences[sequencePattern][i].setAccent(eep_buff[cnt++]); + uint8_t cnt = 0; + for (int i = 0; i < SEQUENCE_N; i++) { + sequences[j][i].setNoteOn(eep_buff[cnt++]); + int pitch = eep_buff[cnt++] << 8; // MSB + pitch |= eep_buff[cnt++]; // LSB + sequences[j][i].setPitch(pitch); + sequences[j][i].setTie(eep_buff[cnt++]); + sequences[j][i].setAccent(eep_buff[cnt++]); + } + + #if (UART_TRACE_EEPROM) + printf("size: %d\r\n", cnt); + printf("sequencePattern: %d\r\n", j); + #endif } // syncronize sequence value & Rotary Encoder's value RotEncPitch->setVal(sequences[sequencePattern][editingStep].getPitch()); #if (UART_TRACE_EEPROM) - printf("size: %d\r\n", cnt); - printf("sequencePattern: %d\r\n", sequencePattern); - for (int i = 0; i < SEQUENCE_N; i++) { - printf("%d %d %03d %d %d\r\n", - i, - sequences[sequencePattern][i].isNoteOn(), - sequences[sequencePattern][i].getPitch(), - sequences[sequencePattern][i].isTie(), - sequences[sequencePattern][i].isAccent() - ); + for (int j = 0; j < PATTERN_N; j++) { + for (int i = 0; i < SEQUENCE_N; i++) { + printf("%d %d %03d %d %d\r\n", + i, + sequences[j][i].isNoteOn(), + sequences[j][i].getPitch(), + sequences[j][i].isTie(), + sequences[j][i].isAccent() + ); + } } #endif