1

Dependencies:   mbed-dev-f303 FastPWM3

Committer:
shaorui
Date:
Wed Apr 14 11:46:16 2021 +0000
Revision:
55:d614e29c60c5
Parent:
48:1b51771c3647
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
benkatz 23:2adf23ee0305 1 #include "PreferenceWriter.h"
benkatz 23:2adf23ee0305 2 #include "FlashWriter.h"
benkatz 23:2adf23ee0305 3 #include "user_config.h"
benkatz 23:2adf23ee0305 4 #include "mbed.h"
benkatz 23:2adf23ee0305 5
benkatz 23:2adf23ee0305 6 PreferenceWriter::PreferenceWriter(uint32_t sector) {
benkatz 23:2adf23ee0305 7 writer = new FlashWriter(sector);
benkatz 23:2adf23ee0305 8 __sector = sector;
benkatz 23:2adf23ee0305 9 __ready = false;
benkatz 23:2adf23ee0305 10 }
benkatz 23:2adf23ee0305 11
benkatz 23:2adf23ee0305 12 void PreferenceWriter::open() {
benkatz 23:2adf23ee0305 13 writer->open();
benkatz 23:2adf23ee0305 14 __ready = true;
benkatz 23:2adf23ee0305 15 }
benkatz 23:2adf23ee0305 16
benkatz 23:2adf23ee0305 17 bool PreferenceWriter::ready() {
benkatz 23:2adf23ee0305 18 return __ready;
benkatz 23:2adf23ee0305 19 }
benkatz 23:2adf23ee0305 20
benkatz 23:2adf23ee0305 21 void PreferenceWriter::write(int x, int index) {
benkatz 23:2adf23ee0305 22 __int_reg[index] = x;
benkatz 23:2adf23ee0305 23 }
benkatz 23:2adf23ee0305 24
benkatz 23:2adf23ee0305 25 void PreferenceWriter::write(float x, int index) {
benkatz 23:2adf23ee0305 26 __float_reg[index] = x;
benkatz 23:2adf23ee0305 27 }
shaorui 48:1b51771c3647 28 /*
benkatz 23:2adf23ee0305 29 void PreferenceWriter::flush() {
benkatz 23:2adf23ee0305 30 int offs;
benkatz 23:2adf23ee0305 31 for (offs = 0; offs < 256; offs++) {
benkatz 23:2adf23ee0305 32 writer->write(offs, __int_reg[offs]);
benkatz 23:2adf23ee0305 33 }
benkatz 23:2adf23ee0305 34 for (; offs < 320; offs++) {
benkatz 23:2adf23ee0305 35 writer->write(offs, __float_reg[offs - 256]);
benkatz 23:2adf23ee0305 36 }
benkatz 24:58c2d7571207 37 __ready = false;
benkatz 23:2adf23ee0305 38 }
shaorui 48:1b51771c3647 39 */
shaorui 48:1b51771c3647 40 void PreferenceWriter::flush() {
shaorui 48:1b51771c3647 41 int offs;
shaorui 48:1b51771c3647 42 for (offs = 0; offs < 300; offs++) {
shaorui 48:1b51771c3647 43 writer->write(offs, __int_reg[offs]);
shaorui 48:1b51771c3647 44 }
shaorui 48:1b51771c3647 45 for (; offs < 364; offs++) {
shaorui 48:1b51771c3647 46 writer->write(offs, __float_reg[offs - 300]);
shaorui 48:1b51771c3647 47 }
shaorui 48:1b51771c3647 48 __ready = false;
shaorui 48:1b51771c3647 49 }
shaorui 48:1b51771c3647 50 /*
benkatz 23:2adf23ee0305 51 void PreferenceWriter::load() {
benkatz 23:2adf23ee0305 52 int offs;
benkatz 23:2adf23ee0305 53 for (offs = 0; offs < 256; offs++) {
benkatz 23:2adf23ee0305 54 __int_reg[offs] = flashReadInt(__sector, offs);
benkatz 23:2adf23ee0305 55 }
benkatz 23:2adf23ee0305 56 for(; offs < 320; offs++) {
benkatz 23:2adf23ee0305 57 __float_reg[offs - 256] = flashReadFloat(__sector, offs);
benkatz 23:2adf23ee0305 58 }
benkatz 23:2adf23ee0305 59 }
shaorui 48:1b51771c3647 60 */
shaorui 48:1b51771c3647 61
shaorui 48:1b51771c3647 62 void PreferenceWriter::load() {
shaorui 48:1b51771c3647 63 int offs;
shaorui 48:1b51771c3647 64 for (offs = 0; offs < 300; offs++) {
shaorui 48:1b51771c3647 65 __int_reg[offs] = flashReadInt(__sector, offs);
shaorui 48:1b51771c3647 66 }
shaorui 48:1b51771c3647 67 for(; offs < 364; offs++) {
shaorui 48:1b51771c3647 68 __float_reg[offs - 300] = flashReadFloat(__sector, offs);
shaorui 48:1b51771c3647 69 }
shaorui 48:1b51771c3647 70 }
benkatz 23:2adf23ee0305 71
benkatz 23:2adf23ee0305 72 void PreferenceWriter::close() {
benkatz 24:58c2d7571207 73 __ready = false;
benkatz 23:2adf23ee0305 74 writer->close();
benkatz 23:2adf23ee0305 75 }