Yoshitaka Kuwata / Mbed 2 deprecated 7segMbed

Dependencies:   mbed sseg

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*** Hello 7seg
00002 
00003     7seg module  logical_name LPC1114 PIN
00004     SEG-A(11)    dp1                1
00005     SEG-B(7)     dp2                2
00006     SEG-C(4)     dp4                4
00007     SEG-D(2)     dp26 (was dp5)     26
00008     SEG-E(1)     dp6                6
00009     SEG-F(10)    dp9                9
00010     SEG-G(5)     dp10               10
00011     SEG-DP(3)    dp11               11
00012 
00013     DIG-1(12)    dp13               13
00014     DIG-2 (9)    dp17               17
00015     DIG-3 (8)    dp18               18
00016     DIG-4 (6)    dp25               25
00017 
00018  */
00019 
00020 #include "mbed.h"
00021 #include "Sseg.h"
00022 
00023 Sseg mySseg = Sseg(dp1, dp2, dp4, dp26, dp6, dp9, dp10, dp11, dp13, dp17, dp18, dp25);
00024 
00025 DigitalOut myled1(LED1);
00026 DigitalOut myled2(LED2);
00027 
00028 char hello[] = {
00029   0x00,
00030   0x00,
00031   0x00,
00032   0x00,
00033   0x6e, // 0b01101110, // H
00034   0x9e, // 0b10011110, // E
00035   0x1c, // 0b00011100, // L
00036   0x1c, // 0b00011100, // L
00037   0x3a, // 0b00111010, // o
00038   0x00, // 0b00000000, // 
00039   NUM_PAT_7,  // 7
00040   0xb6, // 0b10110110, // S
00041   NUM_PAT_E,  // E
00042   0xf6, // 0b11110110, // G
00043   0x01, // 0b00000001 // .
00044 };
00045 
00046 #define OVERWRAP(a, x) (((x) < sizeof(a)) ? (a[(x)]) : a[((x) - sizeof(a))])
00047 
00048 int main() {
00049     mySseg.setKcommon();
00050     mySseg.begin();
00051 
00052     // mySseg.writeRawData(NUM_PAT_0, NUM_PAT_1, NUM_PAT_2, NUM_PAT_3);
00053     // mySseg.writeRawData(NUM_PAT_4, NUM_PAT_5, NUM_PAT_6, NUM_PAT_7);
00054     // mySseg.writeRawData(NUM_PAT_8, NUM_PAT_9, NUM_PAT_A, NUM_PAT_B);
00055     // mySseg.writeRawData(NUM_PAT_C, NUM_PAT_D, NUM_PAT_E, NUM_PAT_F);
00056   
00057     // mySseg.writeRawData(0x01, 0x02, 0x04, 0x08);
00058     // mySseg.writeRawData(0x10, 0x20, 0x40, 0x80);
00059 
00060     // mySseg.writeNum(1, 2, 0xa, 4);
00061 
00062     myled1 = 1;
00063     myled2 = 0;
00064 
00065     while(1) {
00066         for (int p = 0 ; p < sizeof(hello) ; p++) {
00067             myled1 = (myled1 == 0) ? 1 : 0;
00068             myled2 = (myled2 == 0) ? 1 : 0;
00069             mySseg.writeRawData(
00070                 OVERWRAP(hello, p),
00071                 OVERWRAP(hello, p+1),  
00072                 OVERWRAP(hello, p+2),  
00073                 OVERWRAP(hello, p+3));
00074 
00075             mySseg.updateWithDelay(200);
00076         }
00077 
00078     }
00079 }