Simple counter class, non-volatile between resets and power on/off.
Simple Counter class, used to store count array in non-volatile flash memory between resets and power on/off.
Counter.h@1:e8eeddee2959, 2018-11-12 (annotated)
- Committer:
- kpan
- Date:
- Mon Nov 12 19:01:53 2018 +0000
- Revision:
- 1:e8eeddee2959
- Parent:
- 0:693f2f97c8c1
- Child:
- 2:f02ac448ecd3
Changed var names and added function documentation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kpan | 0:693f2f97c8c1 | 1 | #include "mbed.h" |
kpan | 0:693f2f97c8c1 | 2 | #include "FreescaleIAP.h" |
kpan | 0:693f2f97c8c1 | 3 | |
kpan | 1:e8eeddee2959 | 4 | #define MAX_LEN 8 |
kpan | 1:e8eeddee2959 | 5 | //#define COUNTER_DEBUG |
kpan | 0:693f2f97c8c1 | 6 | |
kpan | 0:693f2f97c8c1 | 7 | class Counter |
kpan | 0:693f2f97c8c1 | 8 | { |
kpan | 0:693f2f97c8c1 | 9 | private: |
kpan | 1:e8eeddee2959 | 10 | int count[MAX_LEN]; |
kpan | 1:e8eeddee2959 | 11 | int new_count; |
kpan | 0:693f2f97c8c1 | 12 | int address; |
kpan | 1:e8eeddee2959 | 13 | #ifdef COUNTER_DEBUG |
kpan | 1:e8eeddee2959 | 14 | /** Simple print function |
kpan | 1:e8eeddee2959 | 15 | * |
kpan | 1:e8eeddee2959 | 16 | * Prints all memory addresses in count array with values for debugging purposes. |
kpan | 1:e8eeddee2959 | 17 | * |
kpan | 1:e8eeddee2959 | 18 | */ |
kpan | 0:693f2f97c8c1 | 19 | void print_memory(); |
kpan | 1:e8eeddee2959 | 20 | #endif |
kpan | 1:e8eeddee2959 | 21 | /** Initialize count array |
kpan | 1:e8eeddee2959 | 22 | * |
kpan | 1:e8eeddee2959 | 23 | * Either initializes count array to zeroes or existing count |
kpan | 1:e8eeddee2959 | 24 | * depending on whether it has been called before or not |
kpan | 1:e8eeddee2959 | 25 | * |
kpan | 1:e8eeddee2959 | 26 | */ |
kpan | 0:693f2f97c8c1 | 27 | void init(); |
kpan | 1:e8eeddee2959 | 28 | |
kpan | 0:693f2f97c8c1 | 29 | public: |
kpan | 1:e8eeddee2959 | 30 | |
kpan | 1:e8eeddee2959 | 31 | /** Default Constructor |
kpan | 1:e8eeddee2959 | 32 | * |
kpan | 1:e8eeddee2959 | 33 | * Sets read/write memory addresss of Flash memory |
kpan | 1:e8eeddee2959 | 34 | * Also calls init() |
kpan | 1:e8eeddee2959 | 35 | * |
kpan | 1:e8eeddee2959 | 36 | */ |
kpan | 0:693f2f97c8c1 | 37 | Counter(); |
kpan | 1:e8eeddee2959 | 38 | |
kpan | 1:e8eeddee2959 | 39 | /** Write to Memory |
kpan | 1:e8eeddee2959 | 40 | * |
kpan | 1:e8eeddee2959 | 41 | * Writes current count array to Flash Memory |
kpan | 1:e8eeddee2959 | 42 | * |
kpan | 1:e8eeddee2959 | 43 | */ |
kpan | 1:e8eeddee2959 | 44 | void memwrite(); |
kpan | 1:e8eeddee2959 | 45 | |
kpan | 1:e8eeddee2959 | 46 | /** Read from memory |
kpan | 1:e8eeddee2959 | 47 | * |
kpan | 1:e8eeddee2959 | 48 | * Loads values of existiing count array from Flash Memory |
kpan | 1:e8eeddee2959 | 49 | * |
kpan | 1:e8eeddee2959 | 50 | */ |
kpan | 1:e8eeddee2959 | 51 | void memread(); |
kpan | 1:e8eeddee2959 | 52 | |
kpan | 1:e8eeddee2959 | 53 | /** Increment count |
kpan | 1:e8eeddee2959 | 54 | * |
kpan | 1:e8eeddee2959 | 55 | * Simply increments value of index |
kpan | 1:e8eeddee2959 | 56 | * |
kpan | 1:e8eeddee2959 | 57 | * @param index Index of count array to be incremented |
kpan | 1:e8eeddee2959 | 58 | * |
kpan | 1:e8eeddee2959 | 59 | */ |
kpan | 1:e8eeddee2959 | 60 | void increment(int index); |
kpan | 0:693f2f97c8c1 | 61 | }; |