I messed up the merge, so pushing it over to another repo so I don't lose it. Will tidy up and remove later
Dependencies: BufferedSerial FatFileSystemCpp mbed
frameclock.cpp@9:7214e3c3e5f8, 2021-02-18 (annotated)
- Committer:
- AndyA
- Date:
- Thu Feb 18 18:15:48 2021 +0000
- Revision:
- 9:7214e3c3e5f8
- Child:
- 15:830fc953edd9
massive ripup and redesign; currently has file system build errors
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndyA | 9:7214e3c3e5f8 | 1 | #include "frameclock.h" |
AndyA | 9:7214e3c3e5f8 | 2 | |
AndyA | 9:7214e3c3e5f8 | 3 | frameclock::frameclock() |
AndyA | 9:7214e3c3e5f8 | 4 | { |
AndyA | 9:7214e3c3e5f8 | 5 | _hour = 0; |
AndyA | 9:7214e3c3e5f8 | 6 | _minute = 0; |
AndyA | 9:7214e3c3e5f8 | 7 | _second = 0; |
AndyA | 9:7214e3c3e5f8 | 8 | _frame = 0; |
AndyA | 9:7214e3c3e5f8 | 9 | _rate = 24; |
AndyA | 9:7214e3c3e5f8 | 10 | _drop = false; |
AndyA | 9:7214e3c3e5f8 | 11 | } |
AndyA | 9:7214e3c3e5f8 | 12 | |
AndyA | 9:7214e3c3e5f8 | 13 | frameclock::frameclock(int hour, int minute, int second, int frame, int rate, bool drop) |
AndyA | 9:7214e3c3e5f8 | 14 | { |
AndyA | 9:7214e3c3e5f8 | 15 | _hour = hour; |
AndyA | 9:7214e3c3e5f8 | 16 | _minute = minute; |
AndyA | 9:7214e3c3e5f8 | 17 | _second = second; |
AndyA | 9:7214e3c3e5f8 | 18 | _frame = frame; |
AndyA | 9:7214e3c3e5f8 | 19 | _rate = rate; |
AndyA | 9:7214e3c3e5f8 | 20 | _drop = drop; |
AndyA | 9:7214e3c3e5f8 | 21 | } |
AndyA | 9:7214e3c3e5f8 | 22 | |
AndyA | 9:7214e3c3e5f8 | 23 | void frameclock::setMode(int rate, bool drop) |
AndyA | 9:7214e3c3e5f8 | 24 | { |
AndyA | 9:7214e3c3e5f8 | 25 | _rate = rate; |
AndyA | 9:7214e3c3e5f8 | 26 | _drop = drop; |
AndyA | 9:7214e3c3e5f8 | 27 | } |
AndyA | 9:7214e3c3e5f8 | 28 | void frameclock::setTime(int hour, int minute, int second, int frame) |
AndyA | 9:7214e3c3e5f8 | 29 | { |
AndyA | 9:7214e3c3e5f8 | 30 | _hour = hour; |
AndyA | 9:7214e3c3e5f8 | 31 | _minute = minute; |
AndyA | 9:7214e3c3e5f8 | 32 | _second = second; |
AndyA | 9:7214e3c3e5f8 | 33 | _frame = frame; |
AndyA | 9:7214e3c3e5f8 | 34 | } |
AndyA | 9:7214e3c3e5f8 | 35 | |
AndyA | 9:7214e3c3e5f8 | 36 | |
AndyA | 9:7214e3c3e5f8 | 37 | void frameclock::nextFrame() |
AndyA | 9:7214e3c3e5f8 | 38 | { |
AndyA | 9:7214e3c3e5f8 | 39 | _frame++; |
AndyA | 9:7214e3c3e5f8 | 40 | if (_frame == _rate) { |
AndyA | 9:7214e3c3e5f8 | 41 | _second++; |
AndyA | 9:7214e3c3e5f8 | 42 | if (_second==60) { |
AndyA | 9:7214e3c3e5f8 | 43 | _second = 0; |
AndyA | 9:7214e3c3e5f8 | 44 | _minute++; |
AndyA | 9:7214e3c3e5f8 | 45 | if (_minute == 60) { |
AndyA | 9:7214e3c3e5f8 | 46 | _minute = 0; |
AndyA | 9:7214e3c3e5f8 | 47 | _hour++; |
AndyA | 9:7214e3c3e5f8 | 48 | if (_hour==24) |
AndyA | 9:7214e3c3e5f8 | 49 | _hour = 0; |
AndyA | 9:7214e3c3e5f8 | 50 | } |
AndyA | 9:7214e3c3e5f8 | 51 | } |
AndyA | 9:7214e3c3e5f8 | 52 | if (_drop && (_second==0) && (_minute % 10 != 0)) |
AndyA | 9:7214e3c3e5f8 | 53 | _frame = 2; |
AndyA | 9:7214e3c3e5f8 | 54 | else |
AndyA | 9:7214e3c3e5f8 | 55 | _frame = 0; |
AndyA | 9:7214e3c3e5f8 | 56 | } |
AndyA | 9:7214e3c3e5f8 | 57 | } |
AndyA | 9:7214e3c3e5f8 | 58 |