Changes between Version 3 and Version 4 of wade/embedded/arduino/example/example_3-2


Ignore:
Timestamp:
Feb 11, 2010, 5:31:20 PM (15 years ago)
Author:
wade
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wade/embedded/arduino/example/example_3-2

    v3 v4  
    11{{{
    22/*
    3  * 由 12 個 digital pins 控制 5*7 矩陣式 LED Matrix,col:掃描,row:data :載入 5x7 字形。
     3 * 由 12 個 digital pins 控制 5*7 矩陣式 LED Matrix,col:掃描,row:data。載入 5x7 字形
    44 */
    55
     
    1818#define row_size 7          // 定義 Matrix row 大小
    1919#define col_size 5          // 定義 Matrix colum 小
    20 #define delay_time 1000      // 延遲時間
     20#define delay_time 500      // 延遲時間
    2121
    2222#define data_A {1, 0, 0, 0, 0,\
     
    2727                0, 0, 0, 1, 0,\
    2828                0, 0, 0, 0, 1}
    29 // 0 的字型。
     29#define data_ascii_null {0x00, 0x00, 0x00, 0x00, 0x00} // 全暗
     30#define data_ascii_0 {0x3E, 0x51, 0x49, 0x45, 0x3E}; // 0 48
     31#define data_ascii_1 {0x00, 0x42, 0x7F, 0x40, 0x00}; // 1 49
     32#define data_ascii_2 {0x72, 0x49, 0x49, 0x49, 0x46}; // 2 50
     33#define data_ascii_3 {0x21, 0x41, 0x49, 0x4D, 0x33}; // 3 51
     34#define data_ascii_4 {0x18, 0x14, 0x12, 0x7F, 0x10}; // 4 52
     35#define data_ascii_5 {0x27, 0x45, 0x45, 0x45, 0x39}; // 5 53
     36#define data_ascii_6 {0x3C, 0x4A, 0x49, 0x49, 0x31}; // 6 54
     37#define data_ascii_7 {0x41, 0x21, 0x11, 0x09, 0x07}; // 7 55
     38#define data_ascii_8 {0x36, 0x49, 0x49, 0x49, 0x36}; // 8 56
     39#define data_ascii_9 {0x46, 0x49, 0x49, 0x29, 0x1E}; // 9 57
     40#define data_ascii_: {0x00, 0x00, 0x14, 0x00, 0x00}; // : 58
     41#define data_ascii_; {0x00, 0x40, 0x34, 0x00, 0x00}; // ; 59
     42#define data_ascii_< {0x00, 0x08, 0x14, 0x22, 0x41}; // <
     43#define data_ascii_A {0x7C, 0x12, 0x11, 0x12, 0x7C} // A 65
     44#define data_ascii_B {0x7F, 0x49, 0x49, 0x49, 0x36} // B 66
     45#define data_ascii_C {0x3E, 0x41, 0x41, 0x41, 0x22} // C 67
     46#define data_ascii_D {0x7F, 0x41, 0x41, 0x41, 0x3E} // D 68
     47#define data_ascii_E {0x7F, 0x49, 0x49, 0x49, 0x41} // E 69
     48#define data_ascii_F {0x7F, 0x09, 0x09, 0x09, 0x01} // F 70
     49#define data_ascii_G {0x3E, 0x41, 0x41, 0x51, 0x73} // G 71
     50#define data_ascii_H {0x7F, 0x08, 0x08, 0x08, 0x7F} // H 72
     51#define data_ascii_I {0x00, 0x41, 0x7F, 0x41, 0x00} // I 73
     52#define data_ascii_J {0x20, 0x40, 0x41, 0x3F, 0x01} // J 74
     53#define data_ascii_K {0x7F, 0x08, 0x14, 0x22, 0x41} // K 75
     54#define data_ascii_L {0x7F, 0x40, 0x40, 0x40, 0x40} // L 76
     55#define data_ascii_M {0x7F, 0x02, 0x1C, 0x02, 0x7F} // M 77
     56#define data_ascii_N {0x7F, 0x04, 0x08, 0x10, 0x7F} // N 78
     57#define data_ascii_O {0x3E, 0x41, 0x41, 0x41, 0x3E} // O 79
     58#define data_ascii_P {0x7F, 0x09, 0x09, 0x09, 0x06} // P 80
     59#define data_ascii_Q {0x3E, 0x41, 0x51, 0x21, 0x5E} // Q 81
     60#define data_ascii_R {0x7F, 0x09, 0x19, 0x29, 0x46} // R 82
     61#define data_ascii_S {0x26, 0x49, 0x49, 0x49, 0x32} // S 83
     62#define data_ascii_T {0x03, 0x01, 0x7F, 0x01, 0x03} // T 84
     63#define data_ascii_U {0x3F, 0x40, 0x40, 0x40, 0x3F} // U 85
     64#define data_ascii_V {0x1F, 0x20, 0x40, 0x20, 0x1F} // V 86
     65#define data_ascii_W {0x3F, 0x40, 0x38, 0x40, 0x3F} // W 87
     66#define data_ascii_X {0x63, 0x14, 0x08, 0x14, 0x63} // X 88
     67#define data_ascii_Y {0x03, 0x04, 0x78, 0x04, 0x03} // Y 89
     68#define data_ascii_Z {0x61, 0x59, 0x49, 0x4D, 0x43} // Z 90
     69//byte data_0[5]={0x03E, B00111110, 0x049, 0x045, 0x03E};
    3070byte data_0[5]={0x03E, 0x051, 0x049, 0x045, 0x03E};
     71// ascii 5x7 dot font
     72byte data_ascii[][5] = {
     73                       data_ascii_H,
     74                       data_ascii_A,
     75                       data_ascii_P,
     76                       data_ascii_P,
     77                       data_ascii_Y,
     78                       data_ascii_null,
     79                       data_ascii_N,
     80                       data_ascii_E,
     81                       data_ascii_W,
     82                       data_ascii_null,
     83                       data_ascii_Y,
     84                       data_ascii_E,
     85                       data_ascii_A,
     86                       data_ascii_R
     87                       }; // 9
    3188// 所有要顯示字的 array
    3289boolean word_array[4][row_size][col_size] = {data_A};
     
    57114 
    58115  // HEX 000
    59 
    60116  // 將第一個 word 讀入 led
     117  for (int i = 0; i < 11; i++)
     118  {
     119  hex_word_to_led(i, 1000);
     120  delay(delay_time);
    61121  clear_led();
    62   hex_word_to_led();
     122  }
     123 
    63124  /*
    64125  word_to_led(1);
    65126  display_led(led, 1000);
    66   word_to_led(3);
    67   display_led(led, 1000);
    68   word_to_led(2);
    69   display_led(led, 1000);
    70127  */
    71   //delay(delay_time);
    72 
    73128}
    74129
    75 void hex_word_to_led()
     130void hex_word_to_led(int n, int continue_time)
    76131{
    77 
    78   for(int k = 0; k < col_size; k++)
     132  for(int l = 0; l < continue_time; l++)
    79133  {
    80     int j=0;
    81   digitalWrite(col_pin[k], HIGH);
    82   for (byte i = 1; i != 0; i <<= 1)
    83   {
    84     if ((data_0[k] & i) == i)
     134    for(int k = 0; k < col_size; k++)
    85135    {
    86       digitalWrite(row_pin[j++], LOW);
    87     }else
    88     {j++;}
     136      int j = 0;
     137      digitalWrite(col_pin[k], HIGH);
     138      for (byte i = 1; i != 0; i <<= 1)
     139      {
     140        if ((data_ascii[n][k] & i) == i)
     141        {
     142          digitalWrite(row_pin[j++], LOW);
     143        }else
     144        {j++;}     
     145      }
     146      clear_led();
     147    }
    89148  }
    90   //delay(1);
    91   clear_led();
    92   }
    93149}
    94150
     
    130186  }
    131187}
     188
    132189}}}