Dennis Smith / Mbed 2 deprecated NixieClock800Max

Dependencies:   PCF8583_rtc mbed

Committer:
dennyem
Date:
Thu Feb 13 21:46:08 2014 +0000
Revision:
1:a8b9fb95696b
Parent:
0:f09cf90def53
Child:
2:4184f92440a1
1st cut 14feb2014

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dennyem 1:a8b9fb95696b 1 #include <mbed.h>
dennyem 1:a8b9fb95696b 2 //#include "IRremote.h"
dennyem 0:f09cf90def53 3 #include "PCF8583_rtc.h"
dennyem 0:f09cf90def53 4
dennyem 0:f09cf90def53 5 void NixieDisplay(void);
dennyem 0:f09cf90def53 6
dennyem 0:f09cf90def53 7 DigitalOut Red(P0_7);
dennyem 0:f09cf90def53 8 DigitalOut Green(P0_17);
dennyem 0:f09cf90def53 9 DigitalOut Blue(P0_16);
dennyem 0:f09cf90def53 10
dennyem 0:f09cf90def53 11 I2C i2c(P0_10, P0_11); // sda, scl
dennyem 1:a8b9fb95696b 12 PCF8583rtc rtc(&i2c, PCF8583_addr);
dennyem 1:a8b9fb95696b 13 //IRremote rc5(P0_0);
dennyem 0:f09cf90def53 14
dennyem 0:f09cf90def53 15 // i2c addresses
dennyem 0:f09cf90def53 16 const int ADDR_8574_1 = 0x70;
dennyem 0:f09cf90def53 17 const int ADDR_8574_2 = 0x72;
dennyem 0:f09cf90def53 18
dennyem 0:f09cf90def53 19 int alarm = OFF;
dennyem 0:f09cf90def53 20 int setTimer = OFF;
dennyem 0:f09cf90def53 21
dennyem 0:f09cf90def53 22 int main()
dennyem 0:f09cf90def53 23 {
dennyem 1:a8b9fb95696b 24 struct DateTime_t dtw;
dennyem 1:a8b9fb95696b 25 struct DateTime_t dtr;
dennyem 1:a8b9fb95696b 26 char hours;
dennyem 1:a8b9fb95696b 27 char mins;
dennyem 1:a8b9fb95696b 28 char tmp[8] = {1, 2, 3, 4, 5, 6, 7, 8};
dennyem 1:a8b9fb95696b 29 char tmp1[8];
dennyem 1:a8b9fb95696b 30
dennyem 0:f09cf90def53 31 Red = Green = Blue = 1;
dennyem 0:f09cf90def53 32
dennyem 0:f09cf90def53 33 i2c.frequency(400000);
dennyem 0:f09cf90def53 34
dennyem 1:a8b9fb95696b 35 dtw = rtc.read(TIME);
dennyem 1:a8b9fb95696b 36 dtw.time.hours = rtc.bin2bcd(6);
dennyem 1:a8b9fb95696b 37 dtw.time.minutes = rtc.bin2bcd(38);
dennyem 1:a8b9fb95696b 38 rtc.write(TIME, dtw);
dennyem 0:f09cf90def53 39
dennyem 1:a8b9fb95696b 40 while(1) {
dennyem 1:a8b9fb95696b 41 for(int x = 0; x < 7; x++) {
dennyem 1:a8b9fb95696b 42 tmp[x] = rtc.bin2bcd(rand());
dennyem 1:a8b9fb95696b 43 }
dennyem 1:a8b9fb95696b 44 rtc.WriteNVram(USER_REG, tmp, 8);
dennyem 1:a8b9fb95696b 45 wait(1);
dennyem 1:a8b9fb95696b 46 rtc.ReadNVram(USER_REG, tmp1, 8);
dennyem 1:a8b9fb95696b 47
dennyem 1:a8b9fb95696b 48 for(int x = 0; x < 7; x++) {
dennyem 1:a8b9fb95696b 49 Blue = !Blue;
dennyem 1:a8b9fb95696b 50 if(tmp[x] != tmp1[x]) {
dennyem 1:a8b9fb95696b 51 i2c.write(ADDR_8574_1, tmp, 1);
dennyem 1:a8b9fb95696b 52 tmp1[0] = 0;
dennyem 1:a8b9fb95696b 53 i2c.write(ADDR_8574_2, tmp1, 1);
dennyem 1:a8b9fb95696b 54 }
dennyem 1:a8b9fb95696b 55 }
dennyem 1:a8b9fb95696b 56 }
dennyem 1:a8b9fb95696b 57
dennyem 1:a8b9fb95696b 58 /*
dennyem 1:a8b9fb95696b 59 while(1) {
dennyem 1:a8b9fb95696b 60 dtr = rtc.read(TIME);
dennyem 1:a8b9fb95696b 61 i2c.write(ADDR_8574_1, &dtr.time.hours, 1);
dennyem 1:a8b9fb95696b 62 i2c.write(ADDR_8574_2, &dtr.time.minutes, 1);
dennyem 1:a8b9fb95696b 63
dennyem 1:a8b9fb95696b 64 if (rc5.readclear(0) != 0xff) {
dennyem 1:a8b9fb95696b 65 if(rc5.read(2) != 0xff && rc5.read(3) != 0xff) {
dennyem 1:a8b9fb95696b 66 hours = (dtr.time.hours & 0xf0) + (dtr.time.hours & 0x0f);
dennyem 1:a8b9fb95696b 67 mins = (dtr.time.minutes & 0xf0) + (dtr.time.minutes & 0x0f);
dennyem 1:a8b9fb95696b 68
dennyem 1:a8b9fb95696b 69 switch(rc5.read(2)) {
dennyem 1:a8b9fb95696b 70 case 0x47: //Up
dennyem 1:a8b9fb95696b 71 hours++;
dennyem 1:a8b9fb95696b 72 dtr.time.hours = rtc.bin2bcd(hours);
dennyem 1:a8b9fb95696b 73 break;
dennyem 1:a8b9fb95696b 74 case 0x48: //Down
dennyem 1:a8b9fb95696b 75 hours--;
dennyem 1:a8b9fb95696b 76 dtr.time.hours = rtc.bin2bcd(hours);
dennyem 1:a8b9fb95696b 77 break;
dennyem 1:a8b9fb95696b 78 case 0x59: //Left
dennyem 1:a8b9fb95696b 79 mins++;
dennyem 1:a8b9fb95696b 80 dtr.time.minutes = rtc.bin2bcd(mins);
dennyem 1:a8b9fb95696b 81 break;
dennyem 1:a8b9fb95696b 82 case 0x5a: //Right
dennyem 1:a8b9fb95696b 83 mins--;
dennyem 1:a8b9fb95696b 84 dtr.time.minutes = rtc.bin2bcd(mins);
dennyem 1:a8b9fb95696b 85 break;
dennyem 1:a8b9fb95696b 86 }
dennyem 0:f09cf90def53 87
dennyem 1:a8b9fb95696b 88 rtc.write(TIME, dtr); //Set the current date and time
dennyem 1:a8b9fb95696b 89 rc5.clear();
dennyem 1:a8b9fb95696b 90 }
dennyem 1:a8b9fb95696b 91 }
dennyem 1:a8b9fb95696b 92
dennyem 1:a8b9fb95696b 93 wait(.5);
dennyem 1:a8b9fb95696b 94 }
dennyem 1:a8b9fb95696b 95 */
dennyem 1:a8b9fb95696b 96 }