Dennis Smith / Mbed 2 deprecated NixieClock800Max

Dependencies:   PCF8583_rtc mbed

Committer:
dennyem
Date:
Sun Feb 23 21:28:26 2014 +0000
Revision:
2:4184f92440a1
Parent:
1:a8b9fb95696b
Child:
3:07c00c82338c
24feb2014

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dennyem 1:a8b9fb95696b 1 #include <mbed.h>
dennyem 2:4184f92440a1 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 2:4184f92440a1 12 PCF8583rtc rtc(&i2c, PCF8583_addr_2);
dennyem 2:4184f92440a1 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 dtr;
dennyem 1:a8b9fb95696b 25 char hours;
dennyem 1:a8b9fb95696b 26 char mins;
dennyem 2:4184f92440a1 27
dennyem 0:f09cf90def53 28 Red = Green = Blue = 1;
dennyem 0:f09cf90def53 29
dennyem 0:f09cf90def53 30 i2c.frequency(400000);
dennyem 0:f09cf90def53 31
dennyem 2:4184f92440a1 32 // dtr = rtc.read(TIME); //Set the clock from scratch
dennyem 2:4184f92440a1 33 // dtr.time.hours = rtc.bin2bcd(9);
dennyem 2:4184f92440a1 34 // dtr.time.minutes = rtc.bin2bcd(18);
dennyem 2:4184f92440a1 35 // rtc.write(TIME, dtr);
dennyem 2:4184f92440a1 36 // wait(.1);
dennyem 0:f09cf90def53 37
dennyem 1:a8b9fb95696b 38 while(1) {
dennyem 1:a8b9fb95696b 39 dtr = rtc.read(TIME);
dennyem 1:a8b9fb95696b 40 i2c.write(ADDR_8574_1, &dtr.time.hours, 1);
dennyem 1:a8b9fb95696b 41 i2c.write(ADDR_8574_2, &dtr.time.minutes, 1);
dennyem 2:4184f92440a1 42 i2c.stop();
dennyem 2:4184f92440a1 43
dennyem 1:a8b9fb95696b 44 if (rc5.readclear(0) != 0xff) {
dennyem 1:a8b9fb95696b 45 if(rc5.read(2) != 0xff && rc5.read(3) != 0xff) {
dennyem 2:4184f92440a1 46 hours = ((dtr.time.hours >> 4) * 10) + (dtr.time.hours & 0x0f);
dennyem 2:4184f92440a1 47 mins = ((dtr.time.minutes >> 4) * 10) + (dtr.time.minutes & 0x0f);
dennyem 1:a8b9fb95696b 48
dennyem 1:a8b9fb95696b 49 switch(rc5.read(2)) {
dennyem 1:a8b9fb95696b 50 case 0x47: //Up
dennyem 1:a8b9fb95696b 51 hours++;
dennyem 1:a8b9fb95696b 52 dtr.time.hours = rtc.bin2bcd(hours);
dennyem 1:a8b9fb95696b 53 break;
dennyem 1:a8b9fb95696b 54 case 0x48: //Down
dennyem 1:a8b9fb95696b 55 hours--;
dennyem 1:a8b9fb95696b 56 dtr.time.hours = rtc.bin2bcd(hours);
dennyem 1:a8b9fb95696b 57 break;
dennyem 1:a8b9fb95696b 58 case 0x59: //Left
dennyem 1:a8b9fb95696b 59 mins++;
dennyem 1:a8b9fb95696b 60 dtr.time.minutes = rtc.bin2bcd(mins);
dennyem 1:a8b9fb95696b 61 break;
dennyem 1:a8b9fb95696b 62 case 0x5a: //Right
dennyem 1:a8b9fb95696b 63 mins--;
dennyem 1:a8b9fb95696b 64 dtr.time.minutes = rtc.bin2bcd(mins);
dennyem 1:a8b9fb95696b 65 break;
dennyem 1:a8b9fb95696b 66 }
dennyem 0:f09cf90def53 67
dennyem 1:a8b9fb95696b 68 rtc.write(TIME, dtr); //Set the current date and time
dennyem 1:a8b9fb95696b 69 rc5.clear();
dennyem 1:a8b9fb95696b 70 }
dennyem 1:a8b9fb95696b 71 }
dennyem 1:a8b9fb95696b 72
dennyem 2:4184f92440a1 73 wait(.1);
dennyem 1:a8b9fb95696b 74 }
dennyem 1:a8b9fb95696b 75 }