キッチンタイマーのプログラムです

Dependencies:   mbed SevenSegLed Sound_pwmToDig SwAnalog

回路やプログラムについての詳しい説明は、下記のblogにまとめました。 http://suupen-make.blogspot.jp/2013/11/lpc1114fn28mbedkitchen-timer.html

Revision:
2:269bb751dd19
Parent:
1:f638c70e028c
--- a/main.cpp	Sun Jan 15 04:22:00 2012 +0000
+++ b/main.cpp	Mon Nov 25 05:53:25 2013 +0000
@@ -1,95 +1,98 @@
 //#define debug
 //===========================================================================
-// mbed seven segment LED PCB board example program
+// LPC1114FN28(mbed) kitchen timer 
 //
 // kitchen timer
 //
-// V1.0 120109
-// V1.1 120115 bug fix (40min ihyo no settei de merody ga naranai)
-// 
 // <schematic>
-// 1.seven segment numeric LED Display : OSL40562-LR
-//       http://akizukidenshi.com/download/OSL40562-LR.pdf
+// 1.seven segment numeric LED Display : OSL40562-IRA
+//       http://akizukidenshi.com/download/OSL40562-IRA.pdf
 //
-//  OSL40562-LR                           Resister        mbed
-//  Pin No     Function                   [ohm]           Function
+//  OSL40562-IRA                          Resister        LPC1114FN28
+//  Pin No     Function                   [ohm]           PinNo
 //  ---------------------------------------------------------------------------
-//   1         segment E                   200            P13 
-//   2         segment D                   200            P12
-//   3         segment Dp                  200            P11
-//   4         segment C                   200            p10
-//   5         segment G                   200            P9
-//   6         common  4                   -              P8  
-//   7         segment B                   200            P5
-//   8         common  3                   -              P6 
-//   9         common  2                   -              p7
-//  10         segment F                   200            p18
-//  11         segment A                   200            P19 
-//  12         common  1                    -             p20
+//   1         segment E                   680            dp28 
+//   2         segment D                   680            dp27
+//   3         segment Dp                  680            dp26
+//   4         segment C                   680            dp25
+//   5         segment G                   680            dp18
+//   6         common  4                   -              dp17  
+//   7         segment B                   680            dp11
+//   8         common  3                   -              dp13 
+//   9         common  2                   -              dp14
+//  10         segment F                   680            dp5
+//  11         segment A                   680            dp6 
+//  12         common  1                    -             dp4
 // 
 // 2.sound speaker
 //                                               /
 //   mbed                 --------------      --/
-//   p21(pwmOut)     -----| R:0[ohm]   |-----|  |  speaker(8[ohm])
+//   dp1(pwmOut)     -----| R:100[ohm] |-----|  |  speaker(8[ohm])
 //                        --------------     |  |
 //                                           |  |
-//   p22(DigitalOut) ------------------------|  |
-//                                            --\
+//   dp2(pwmOut)     ------------------------|  |
+//      (digitalOut)                          --\
 //                                               \
 // 3.sw
-//                sw6(left sw)
-//                ---- 
-//    p25 --------o  o----------- GND
-//
-//                sw5(up sw)
-//                ---- 
-//    p26 --------o  o----------- GND
-//
-//                sw4(down sw)
-//                ---- 
-//    p27 --------o  o----------- GND
+//   -.- Vcc(+3.3[V])
+//    |                                               |--------------------> dp9(ADinput)
+//    |   ---------       ---------       ---------   |   ---------
+//    .---| Rsw2  |---.---| Rsw1  |---.---| Rsw0  |---.---| Rout  |----|
+//    |   ---------   |   ---------   |   ---------   |   ---------    |
+//    |     ----      |     -----     |     -----     |                |
+//    |-----o  o------.-----o  o------.-----o  o------|              -----
+//           LeftSW         DowmSW           UpSW                  GND(0[V])
+// 
+//  Rsw2 : 8.2[kohm], Rsw1 = 3.9[kohm], Rsw0 = 2.0[kohm], Rout = 1.0[kohm] (R no seido ha +-1[%])
 //
-//                sw3(right sw)
-//                ---- 
-//    p28 --------o  o----------- GND
+//   -.- Vcc(+3.3[V])
+//    |                                               |--------------------> dp10(ADinput)
+//    |   ---------       ---------       ---------   |   ---------
+//    .---| Rsw2  |---.---| Rsw1  |---.---| Rsw0  |---.---| Rout  |----|
+//    |   ---------   |   ---------   |   ---------   |   ---------    |
+//    |     ----      |     -----     |     -----     |                |
+//    |-----o  o------.-----o  o------.-----o  o------|              -----
+//          RightSW          BSW           ASW                      GND(0[V])
+// 
+//  Rsw2 : 8.2[kohm], Rsw1 = 3.9[kohm], Rsw0 = 2.0[kohm], Rout = 1.0[kohm] (R no seido ha +-1[%])
 //
-//                sw2(b sw)
-//                ---- 
-//    p29 --------o  o----------- GND
-//
-//                sw1(a sw)
-//                ---- 
-//    p30 --------o  o----------- GND
-//
-// V1.0 2011/12/11 
+// V1.0 131106
 // 
 //
 //===========================================================================
 #include "mbed.h"
+
+//#define DBG
+
+#ifdef DBG
+Serial pc(dp16, dp15);
+#endif //DBG
+
+
 #include "SevenSegLed.h"
 #include "Sound.h"
-#include "SwDigital.h"
+#include "SwAnalog.h"
 
-DigitalOut led1(LED1);
-DigitalOut led2(LED2);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
+
+
 
 Ticker timeout100ms;     // 100ms interrupt
 
-Sound sound(p21, p22);
-SwDigital sw(p25, p26, p27, p28, p29, p30); // left, up, down, right, b, a
+Sound sound(dp1, dp2);    // pwm, pwm(digitalOut)
+
+
+SwAnalog sw(dp9, dp10);
 enum{
-    leftSw,
     upSw,
     downSw,
-    rightSw,
+    leftSw,
+    aSw,
     bSw,
-    aSw
+    rightSw
 };
 
-//SevenSegLed sevenSegLed(1, 1, p19, p7, p10, p12, p13, p20, p9, p11, p18, p5, p6, p8);   // OSL40562-LR(schematic bug)
-SevenSegLed sevenSegLed(1, 1, p19, p5, p10, p12, p13, p18, p9, p11, p20, p7, p6, p8);   // OSL40562-LR(seikiban)
+SevenSegLed sevenSegLed(0, 1, dp6, dp11, dp25, dp27, dp28, dp5, dp18, dp26, dp4, dp14, dp13, dp17);   // OSL40562-IRA
+
 
 uint8_t D_7seg[4] = {0, 0, 0, 0};
 uint8_t D_dot[4] = {0, 1, 0, 0};
@@ -113,12 +116,24 @@
 uint8_t F_flip100ms;    // 100ms keika goto ni 0 or 1 
 uint8_t F_flip500ms;    // 500ms keika goto ni 0 or 1
 
+
+// "beep" merody data
+    const Sound::sound_t BEEP[] = {
+    {1,0x95,200,100},
+    {1,0xFF,10,0}    // end
+    };
+
 void beep(void){
 // tone1 
-    Sound::sound_t oto = {1,0x95,200,100};
-    sound.sound_sound(oto);
+//    Sound::sound_t oto = {1,0x95,200,100};
+//    sound.sound_sound(oto);
+  
+ 
+    sound.sound_enso((Sound::sound_t*)BEEP);
+    sound.sound_enso(true);
 }
 
+
 // "westminster chime" merody data
     const Sound::sound_t WESTMINSTER[] =     {
     //  onkai,hatuon jikan[ms]
@@ -295,6 +310,8 @@
     }
 
 }
+
+
 //============================
 // timer set
 //============================
@@ -358,6 +375,8 @@
 //==========================
 void sevenSegDisplay(void){
     int16_t work;
+
+
     
     switch(M_timer){
     case stop:
@@ -498,6 +517,7 @@
 
 }
 
+
 //================================
 // main
 //================================
@@ -505,24 +525,31 @@
     timeout100ms.attach(&interrupt100ms, 0.1);  // 10ms interrupt
 
     while(1) {
+    
+
         // sw level and edge data refresh
+
         sw.refreshEdgeData();
-    
+
+
         timerSeni();
         timerSet();
+
         sevenSegDisplay();
-/*
+ 
         // debug code
-        if((sw.checkEdgeOn(leftSw) == 1)
-         ||(sw.checkEdgeOn(rightSw) == 1)
-         ||(sw.checkEdgeOn(upSw) == 1)
-         ||(sw.checkEdgeOn(downSw) == 1)
-         ||(sw.checkEdgeOn(aSw) == 1)
-         ||(sw.checkEdgeOn(bSw) == 1)
-        ){
-            led1 = !led1;
-        }
- */       
+#if 0
+            pc.printf("%01d %01d %01d    %01d %01d %01d\r\n",
+            sw.checkLevel(0),
+            sw.checkLevel(1),
+            sw.checkLevel(2),
+            sw.checkLevel(3),
+            sw.checkLevel(4),
+            sw.checkLevel(5)
+           
+            );
+#endif      
  
     }
 }
+