-

Committer:
rogeranderson
Date:
Mon Nov 19 19:00:30 2018 +0000
Revision:
6:9f8adf722fc3
Parent:
4:c15c22484205
enable debug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kpan 2:f02ac448ecd3 1 #ifndef COUNTER_H
kpan 2:f02ac448ecd3 2 #define COUNTER_H
kpan 2:f02ac448ecd3 3
kpan 0:693f2f97c8c1 4 #include "mbed.h"
kpan 0:693f2f97c8c1 5 #include "FreescaleIAP.h"
kpan 0:693f2f97c8c1 6
kpan 2:f02ac448ecd3 7 #ifndef MAX_LEN
kpan 1:e8eeddee2959 8 #define MAX_LEN 8
kpan 2:f02ac448ecd3 9 #endif
kpan 2:f02ac448ecd3 10
kpan 2:f02ac448ecd3 11 /**
kpan 2:f02ac448ecd3 12 * Counter example
kpan 2:f02ac448ecd3 13 *
kpan 2:f02ac448ecd3 14 * @code
kpan 2:f02ac448ecd3 15 * #include "mbed.h"
kpan 2:f02ac448ecd3 16 * #include "Counter.h"
kpan 2:f02ac448ecd3 17 *
kpan 2:f02ac448ecd3 18 * int main(void) {
kpan 2:f02ac448ecd3 19 *
kpan 2:f02ac448ecd3 20 * Counter ct;
kpan 2:f02ac448ecd3 21 * while (true) {
kpan 2:f02ac448ecd3 22 * ct.increment(rand()%MAX_LEN);
kpan 2:f02ac448ecd3 23 * wait(0.5);
kpan 2:f02ac448ecd3 24 * }
kpan 2:f02ac448ecd3 25 * }
kpan 2:f02ac448ecd3 26 * @endcode
kpan 2:f02ac448ecd3 27 */
kpan 0:693f2f97c8c1 28
kpan 0:693f2f97c8c1 29 class Counter
kpan 0:693f2f97c8c1 30 {
rogeranderson 6:9f8adf722fc3 31 public:
kpan 1:e8eeddee2959 32 int count[MAX_LEN];
kpan 2:f02ac448ecd3 33 int is_new_count;
kpan 0:693f2f97c8c1 34 int address;
kpan 1:e8eeddee2959 35 /** Initialize count array
kpan 1:e8eeddee2959 36 *
kpan 1:e8eeddee2959 37 * Either initializes count array to zeroes or existing count
kpan 1:e8eeddee2959 38 * depending on whether it has been called before or not
kpan 1:e8eeddee2959 39 *
kpan 1:e8eeddee2959 40 */
kpan 2:f02ac448ecd3 41 void init(void);
kpan 4:c15c22484205 42 /** Decrement count
kpan 4:c15c22484205 43 *
kpan 4:c15c22484205 44 * Simply decrement value of index
kpan 4:c15c22484205 45 * Private to disallow access for this specific purpose;
kpan 4:c15c22484205 46 * @param index Index of count array to be decremented
kpan 4:c15c22484205 47 *
kpan 4:c15c22484205 48 */
kpan 4:c15c22484205 49 void decrement(int index);
kpan 1:e8eeddee2959 50
rogeranderson 6:9f8adf722fc3 51 //public:
kpan 1:e8eeddee2959 52
kpan 1:e8eeddee2959 53 /** Default Constructor
kpan 1:e8eeddee2959 54 *
kpan 1:e8eeddee2959 55 * Sets read/write memory addresss of Flash memory
kpan 1:e8eeddee2959 56 * Also calls init()
kpan 1:e8eeddee2959 57 *
kpan 1:e8eeddee2959 58 */
kpan 0:693f2f97c8c1 59 Counter();
kpan 1:e8eeddee2959 60
kpan 1:e8eeddee2959 61 /** Write to Memory
kpan 1:e8eeddee2959 62 *
kpan 1:e8eeddee2959 63 * Writes current count array to Flash Memory
kpan 1:e8eeddee2959 64 *
kpan 1:e8eeddee2959 65 */
kpan 2:f02ac448ecd3 66 void memwrite(void);
kpan 1:e8eeddee2959 67
kpan 1:e8eeddee2959 68 /** Read from memory
kpan 1:e8eeddee2959 69 *
kpan 1:e8eeddee2959 70 * Loads values of existiing count array from Flash Memory
kpan 1:e8eeddee2959 71 *
kpan 1:e8eeddee2959 72 */
kpan 2:f02ac448ecd3 73 void memread(void);
kpan 1:e8eeddee2959 74
kpan 1:e8eeddee2959 75 /** Increment count
kpan 1:e8eeddee2959 76 *
kpan 1:e8eeddee2959 77 * Simply increments value of index
kpan 1:e8eeddee2959 78 *
kpan 1:e8eeddee2959 79 * @param index Index of count array to be incremented
kpan 1:e8eeddee2959 80 *
kpan 1:e8eeddee2959 81 */
kpan 1:e8eeddee2959 82 void increment(int index);
kpan 4:c15c22484205 83 /** Clears Count
kpan 4:c15c22484205 84 *
kpan 4:c15c22484205 85 * RESETS count array
kpan 4:c15c22484205 86 *
kpan 4:c15c22484205 87 */
kpan 4:c15c22484205 88 void clear();
rogeranderson 6:9f8adf722fc3 89
rogeranderson 6:9f8adf722fc3 90 /** Simple print function
rogeranderson 6:9f8adf722fc3 91 *
rogeranderson 6:9f8adf722fc3 92 * Prints all memory addresses in count array with values for debugging purposes.
rogeranderson 6:9f8adf722fc3 93 *
rogeranderson 6:9f8adf722fc3 94 */
rogeranderson 6:9f8adf722fc3 95 void print_memory(void);
rogeranderson 6:9f8adf722fc3 96
kpan 2:f02ac448ecd3 97 };
kpan 2:f02ac448ecd3 98
kpan 2:f02ac448ecd3 99 #endif