Backing up an unused program in case of future need

Dependencies:   mbed

Committer:
andrewboyson
Date:
Thu Dec 06 11:40:19 2018 +0000
Revision:
8:45a0205a298f
Backing up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 8:45a0205a298f 1 #include "mbed.h"
andrewboyson 8:45a0205a298f 2
andrewboyson 8:45a0205a298f 3 static SPI device(p5, p6, p7); // mosi, miso, sclk
andrewboyson 8:45a0205a298f 4 static DigitalOut cs(p8, 1); // ssel
andrewboyson 8:45a0205a298f 5
andrewboyson 8:45a0205a298f 6 /*
andrewboyson 8:45a0205a298f 7 | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 |
andrewboyson 8:45a0205a298f 8 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 9 | - | 10 Seconds | Seconds | 00–59
andrewboyson 8:45a0205a298f 10 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 11 | - | 10 Minutes | Minutes | 00–59
andrewboyson 8:45a0205a298f 12 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 13 | - | - | 10 Hours | Hours | 00-23
andrewboyson 8:45a0205a298f 14 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 15 | - | - | - | - | - | Weekday | 1-7
andrewboyson 8:45a0205a298f 16 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 17 | - | - | 10 Days | Days | 01-31
andrewboyson 8:45a0205a298f 18 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 19 |Century| - | - | 10 Mo | Months | 01-12
andrewboyson 8:45a0205a298f 20 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 21 | 10 Years | Years | 00-99
andrewboyson 8:45a0205a298f 22 +-------+-------+-------+-------+-------+-------+-------+-------+
andrewboyson 8:45a0205a298f 23 */
andrewboyson 8:45a0205a298f 24 static char bcdToInt(char bcd)
andrewboyson 8:45a0205a298f 25 {
andrewboyson 8:45a0205a298f 26 return 0;
andrewboyson 8:45a0205a298f 27 }
andrewboyson 8:45a0205a298f 28 static char intToBcd(char i)
andrewboyson 8:45a0205a298f 29 {
andrewboyson 8:45a0205a298f 30 return 0;
andrewboyson 8:45a0205a298f 31 }
andrewboyson 8:45a0205a298f 32 void ExtRtcSet(struct tm *ptm)
andrewboyson 8:45a0205a298f 33 {
andrewboyson 8:45a0205a298f 34 char bcd;
andrewboyson 8:45a0205a298f 35 cs = 0;
andrewboyson 8:45a0205a298f 36 device.write(0x80); //Send address 00h
andrewboyson 8:45a0205a298f 37 bcd = intToBcd(ptm->tm_sec ); device.write(bcd);
andrewboyson 8:45a0205a298f 38 bcd = intToBcd(ptm->tm_min ); device.write(bcd);
andrewboyson 8:45a0205a298f 39 bcd = intToBcd(ptm->tm_hour); device.write(bcd);
andrewboyson 8:45a0205a298f 40 bcd = ptm->tm_wday; device.write(bcd);
andrewboyson 8:45a0205a298f 41 bcd = intToBcd(ptm->tm_mday); device.write(bcd);
andrewboyson 8:45a0205a298f 42 int year = ptm->tm_year;
andrewboyson 8:45a0205a298f 43 bcd = intToBcd(ptm->tm_mon);
andrewboyson 8:45a0205a298f 44 if (year > 99) bcd |= 0x80;
andrewboyson 8:45a0205a298f 45 device.write(bcd);
andrewboyson 8:45a0205a298f 46 if (year > 99) year -=100;
andrewboyson 8:45a0205a298f 47 bcd = intToBcd(year);
andrewboyson 8:45a0205a298f 48 device.write(bcd);
andrewboyson 8:45a0205a298f 49 cs = 1;
andrewboyson 8:45a0205a298f 50 }
andrewboyson 8:45a0205a298f 51 void ExtRtcGet(struct tm *ptm)
andrewboyson 8:45a0205a298f 52 {
andrewboyson 8:45a0205a298f 53 char bcd;
andrewboyson 8:45a0205a298f 54 cs = 0;
andrewboyson 8:45a0205a298f 55 device.write(0x00); //Send address 00h
andrewboyson 8:45a0205a298f 56 bcd = device.write(0xFF); ptm->tm_sec = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 57 bcd = device.write(0xFF); ptm->tm_min = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 58 bcd = device.write(0xFF); ptm->tm_hour = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 59 bcd = device.write(0xFF); ptm->tm_wday = bcd;
andrewboyson 8:45a0205a298f 60 bcd = device.write(0xFF); ptm->tm_mday = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 61 bcd = device.write(0xFF);
andrewboyson 8:45a0205a298f 62 int century = bcd & 0x80;
andrewboyson 8:45a0205a298f 63 bcd &= 0x7F;
andrewboyson 8:45a0205a298f 64 ptm->tm_mon = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 65 bcd = device.write(0xFF);
andrewboyson 8:45a0205a298f 66 ptm->tm_year = bcdToInt(bcd);
andrewboyson 8:45a0205a298f 67 if (century) ptm->tm_year += 100;
andrewboyson 8:45a0205a298f 68 cs = 1;
andrewboyson 8:45a0205a298f 69 }
andrewboyson 8:45a0205a298f 70
andrewboyson 8:45a0205a298f 71 int ExtRtcMain()
andrewboyson 8:45a0205a298f 72 {
andrewboyson 8:45a0205a298f 73 return 0;
andrewboyson 8:45a0205a298f 74 }
andrewboyson 8:45a0205a298f 75 int ExtRtcInit()
andrewboyson 8:45a0205a298f 76 {
andrewboyson 8:45a0205a298f 77 cs = 1;
andrewboyson 8:45a0205a298f 78 device.format(8, 1);
andrewboyson 8:45a0205a298f 79 device.frequency(1000000);
andrewboyson 8:45a0205a298f 80 return 0;
andrewboyson 8:45a0205a298f 81 }