BlackOneサンプルプログラム ”フォトフレーム” 詳細はエレキジャックのページを参照ください。 BlackOne Sample Prrogram \"PhotoFrame\"

Dependencies:   mbed

Committer:
techand
Date:
Fri Feb 24 09:44:18 2012 +0000
Revision:
0:8ebca055e125

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
techand 0:8ebca055e125 1 /*************************************************************************
techand 0:8ebca055e125 2 *
techand 0:8ebca055e125 3 * mbed BlackOne
techand 0:8ebca055e125 4 * Photo Frame Sample Program for Eleki Jack
techand 0:8ebca055e125 5 * by Techand
techand 0:8ebca055e125 6 **************************************************************************
techand 0:8ebca055e125 7 */
techand 0:8ebca055e125 8
techand 0:8ebca055e125 9 #include "mbed.h"
techand 0:8ebca055e125 10 Serial pc(USBTX, USBRX); // tx, rx
techand 0:8ebca055e125 11 Serial lcd(p9, p10); // lcd serial port
techand 0:8ebca055e125 12
techand 0:8ebca055e125 13
techand 0:8ebca055e125 14 // Function prototypes **************************
techand 0:8ebca055e125 15 void set_RTC ();
techand 0:8ebca055e125 16 void calendar();
techand 0:8ebca055e125 17
techand 0:8ebca055e125 18
techand 0:8ebca055e125 19 /***********************************
techand 0:8ebca055e125 20 *
techand 0:8ebca055e125 21 * Photo Frame Main
techand 0:8ebca055e125 22 *
techand 0:8ebca055e125 23 ************************************
techand 0:8ebca055e125 24 */
techand 0:8ebca055e125 25 int main() {
techand 0:8ebca055e125 26 wait(1);
techand 0:8ebca055e125 27 lcd.printf("\x1b@14Z"); // 57600bps
techand 0:8ebca055e125 28 lcd.baud(57600);
techand 0:8ebca055e125 29 wait(1);
techand 0:8ebca055e125 30 lcd.printf("\x1b@0Z"); // Clear all data (character & graphics)
techand 0:8ebca055e125 31 lcd.printf("\x1b[>5h"); // Curser OFF
techand 0:8ebca055e125 32 lcd.printf("\x1b@30Z"); // Set buffer0 for display
techand 0:8ebca055e125 33
techand 0:8ebca055e125 34 set_RTC(); // Set and Start RTC
techand 0:8ebca055e125 35
techand 0:8ebca055e125 36 calendar(); // format and display calender
techand 0:8ebca055e125 37
techand 0:8ebca055e125 38 // Display "Photo"
techand 0:8ebca055e125 39 for (;;)
techand 0:8ebca055e125 40 {
techand 0:8ebca055e125 41 for (int i=1 ;i<=8;i++)
techand 0:8ebca055e125 42 {
techand 0:8ebca055e125 43 lcd.printf("\x1b@%d;0I",i);
techand 0:8ebca055e125 44 wait_ms(2000);
techand 0:8ebca055e125 45 }
techand 0:8ebca055e125 46 }
techand 0:8ebca055e125 47 }
techand 0:8ebca055e125 48
techand 0:8ebca055e125 49
techand 0:8ebca055e125 50 /*****************************
techand 0:8ebca055e125 51 *
techand 0:8ebca055e125 52 * Set and Init. RTC
techand 0:8ebca055e125 53 *
techand 0:8ebca055e125 54 ******************************
techand 0:8ebca055e125 55 */
techand 0:8ebca055e125 56 void set_RTC () {
techand 0:8ebca055e125 57 time_t seconds = time(NULL);
techand 0:8ebca055e125 58
techand 0:8ebca055e125 59 if ( (signed)seconds == -1 )
techand 0:8ebca055e125 60 {
techand 0:8ebca055e125 61 // setup time
techand 0:8ebca055e125 62 struct tm t;
techand 0:8ebca055e125 63
techand 0:8ebca055e125 64 t.tm_sec = 00; // seconds 0-59
techand 0:8ebca055e125 65 t.tm_min = 00; // minuits 0-59
techand 0:8ebca055e125 66 t.tm_hour = 10; // hour 0-23
techand 0:8ebca055e125 67 t.tm_mday = 3; // day 1-31
techand 0:8ebca055e125 68 t.tm_mon = 2; // month 0-11
techand 0:8ebca055e125 69 t.tm_year = 112; // year from 1900
techand 0:8ebca055e125 70
techand 0:8ebca055e125 71 seconds = mktime(&t);
techand 0:8ebca055e125 72 set_time(seconds);
techand 0:8ebca055e125 73 }
techand 0:8ebca055e125 74 }
techand 0:8ebca055e125 75
techand 0:8ebca055e125 76
techand 0:8ebca055e125 77
techand 0:8ebca055e125 78 /*****************************
techand 0:8ebca055e125 79 *
techand 0:8ebca055e125 80 * format and Display Calender
techand 0:8ebca055e125 81 *
techand 0:8ebca055e125 82 ******************************
techand 0:8ebca055e125 83 */
techand 0:8ebca055e125 84 void calendar()
techand 0:8ebca055e125 85 {
techand 0:8ebca055e125 86 int w_today;
techand 0:8ebca055e125 87 int today;
techand 0:8ebca055e125 88 int w;
techand 0:8ebca055e125 89
techand 0:8ebca055e125 90 char buff[16];
techand 0:8ebca055e125 91
techand 0:8ebca055e125 92 int md[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; // size of month. Leap Year This Year!
techand 0:8ebca055e125 93 char sun[] = {0x93,0xFA,0x00}; // sunday
techand 0:8ebca055e125 94 char sat[] = {0x20,0x93,0x79,0x00}; // Saturday
techand 0:8ebca055e125 95 char week[] = {0x20,0x8C,0x8E,0x20,0x89,0xCE,0x20,0x90,0x85,0x20,0x96,0xD8,0x20,0x8B,0xE0,0x00};
techand 0:8ebca055e125 96 // Week Header "sun mon tue wed thu fri sat"
techand 0:8ebca055e125 97
techand 0:8ebca055e125 98 time_t seconds = time(NULL);
techand 0:8ebca055e125 99 struct tm *t = localtime(&seconds);
techand 0:8ebca055e125 100
techand 0:8ebca055e125 101 lcd.printf("\x1b[8;0H");
techand 0:8ebca055e125 102 lcd.printf("\x1b[1;32;m");
techand 0:8ebca055e125 103 strftime(buff,15, "%Y %B", localtime(&seconds));
techand 0:8ebca055e125 104 lcd.printf("%s",buff);
techand 0:8ebca055e125 105
techand 0:8ebca055e125 106 lcd.printf("\x1b[9;0H");
techand 0:8ebca055e125 107 lcd.printf("\x1b[1;31;m");
techand 0:8ebca055e125 108 lcd.printf("%s",sun);
techand 0:8ebca055e125 109 lcd.printf("\x1b[1;32;m");
techand 0:8ebca055e125 110 lcd.printf("%s",week);
techand 0:8ebca055e125 111 lcd.printf("\x1b[1;34;m");
techand 0:8ebca055e125 112 lcd.printf("%s",sat);
techand 0:8ebca055e125 113
techand 0:8ebca055e125 114 today = t->tm_mday;
techand 0:8ebca055e125 115 w_today = t->tm_wday;
techand 0:8ebca055e125 116
techand 0:8ebca055e125 117 w=0;
techand 0:8ebca055e125 118 w_today = (w_today - ((today % 7)-1));
techand 0:8ebca055e125 119
techand 0:8ebca055e125 120 for ( int i = 1; i <= md[t->tm_mon]; i++)
techand 0:8ebca055e125 121 {
techand 0:8ebca055e125 122 lcd.printf("\x1b[%d;%dH",((w_today+w)/7)+10,(3*((w_today+w)%7))+0);
techand 0:8ebca055e125 123
techand 0:8ebca055e125 124 lcd.printf("\x1b[1;32;m");
techand 0:8ebca055e125 125
techand 0:8ebca055e125 126 if ( (w_today+w)%7 == 0)
techand 0:8ebca055e125 127 {
techand 0:8ebca055e125 128 lcd.printf("\x1b[1;31;m");
techand 0:8ebca055e125 129 }
techand 0:8ebca055e125 130 if ( (w_today+w)%7 == 6)
techand 0:8ebca055e125 131 {
techand 0:8ebca055e125 132 lcd.printf("\x1b[1;34;m");
techand 0:8ebca055e125 133 }
techand 0:8ebca055e125 134
techand 0:8ebca055e125 135 if ( i == today)
techand 0:8ebca055e125 136 {
techand 0:8ebca055e125 137 lcd.printf("\x1b[7m");
techand 0:8ebca055e125 138 } else
techand 0:8ebca055e125 139 {
techand 0:8ebca055e125 140 lcd.printf("\x1b[27m");
techand 0:8ebca055e125 141 }
techand 0:8ebca055e125 142
techand 0:8ebca055e125 143 lcd.printf("%2d",i);
techand 0:8ebca055e125 144 w++;
techand 0:8ebca055e125 145 }
techand 0:8ebca055e125 146 }