質問編集履歴
1
誤字修正
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -6,7 +6,7 @@ | |
| 6 6 |  | 
| 7 7 | 
             
            一度にたくさんの鍵盤を押して,MIDIデータを読み込むと,取りこぼしてしまいます.ノイズということも考えて,フォトカプラと,抵抗を入れましたが,変わりません.Mbedでリングバッファを自作して確認したため,バッファ漏れということはないと思われます.
         | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 9 | 
            +
            下記に自作リンバッファのプログラムを載せておきます.プログラムが汚くてすみません,試作中なので,コメントアウト等が多くあります.間違い等ありましたら指摘お願いします.
         | 
| 10 10 |  | 
| 11 11 | 
             
            色々調べた結果,MIDIの割り込みすら起きていないと思います.
         | 
| 12 12 |  | 
| @@ -18,7 +18,7 @@ | |
| 18 18 |  | 
| 19 19 | 
             
            //省略
         | 
| 20 20 |  | 
| 21 | 
            -
            volatile char getData__[ | 
| 21 | 
            +
            volatile char getData__[256] = {0};
         | 
| 22 22 | 
             
            volatile int writePos__ = 0;
         | 
| 23 23 | 
             
            volatile int readPos__ = 0;
         | 
| 24 24 | 
             
            volatile int available__ = 0;
         | 
| @@ -34,7 +34,7 @@ | |
| 34 34 | 
             
            {
         | 
| 35 35 | 
             
                //省略
         | 
| 36 36 | 
             
                midi.attach(Midi_RX_, RawSerial::RxIrq);
         | 
| 37 | 
            -
            //省略
         | 
| 37 | 
            +
              //省略
         | 
| 38 38 | 
             
            }
         | 
| 39 39 |  | 
| 40 40 | 
             
            char read_()
         | 
| @@ -82,51 +82,8 @@ | |
| 82 82 | 
             
                if (available__ > 100) printf("Over 100");
         | 
| 83 83 | 
             
            }
         | 
| 84 84 |  | 
| 85 | 
            -
            /*int getData()
         | 
| 86 | 
            -
            {
         | 
| 87 | 
            -
                while (!midi.readable()) {}
         | 
| 88 | 
            -
                return midi.getc();
         | 
| 89 | 
            -
             | 
| 85 | 
            +
            //省略
         | 
| 90 86 |  | 
| 91 | 
            -
            void LEDwrite()
         | 
| 92 | 
            -
            {
         | 
| 93 | 
            -
                if (flag_uk == true) {
         | 
| 94 | 
            -
                    for (int i = 0; i < 12; i++) {
         | 
| 95 | 
            -
                        if (LEDlight_uk[i] == true) for (int j = i * 5; j < (i + 1) * 5; j++) uk_px.Set(j,0x0000ff);
         | 
| 96 | 
            -
                        else for (int j = i * 5; j < (i + 1) * 5; j++) uk_px.Set(j,0x000000);
         | 
| 97 | 
            -
                    }
         | 
| 98 | 
            -
                    uk.write(uk_px.getBuf());
         | 
| 99 | 
            -
                    flag_uk = false;
         | 
| 100 | 
            -
                }
         | 
| 101 | 
            -
                if (flag_lk == true) {
         | 
| 102 | 
            -
                    for (int i = 0; i < 12; i++) {
         | 
| 103 | 
            -
                        if (LEDlight_lk[i] == true) for (int j = i * 5; j < (i + 1) * 5; j++)lk_px.Set(j,0x00ff00);
         | 
| 104 | 
            -
                        else for (int j = i * 5; j < (i + 1) * 5; j++) lk_px.Set(j,0x000000);
         | 
| 105 | 
            -
                    }
         | 
| 106 | 
            -
                    lk.write(lk_px.getBuf());
         | 
| 107 | 
            -
                    flag_lk = false;
         | 
| 108 | 
            -
                }
         | 
| 109 | 
            -
                if (flag_pk == true) {
         | 
| 110 | 
            -
                    for (int i = 0; i < 12; i++) {
         | 
| 111 | 
            -
                        if (LEDlight_pk[i] == true) for (int j = i * 2; j < (i + 1) * 2; j++) pk_px.Set(j,0xff0000);
         | 
| 112 | 
            -
                        else for (int j = i * 2; j < (i + 1) * 2; j++) pk_px.Set(j,0x000000);
         | 
| 113 | 
            -
                    }
         | 
| 114 | 
            -
                    pk.write(pk_px.getBuf());
         | 
| 115 | 
            -
                    flag_pk = false;
         | 
| 116 | 
            -
                }
         | 
| 117 | 
            -
            }
         | 
| 118 | 
            -
             | 
| 119 | 
            -
            void Model_request()
         | 
| 120 | 
            -
            {
         | 
| 121 | 
            -
                char send_data[6] = {0xF0,0x43,0x70,0x70,0x30,0xF7};
         | 
| 122 | 
            -
                write_(send_data,6);
         | 
| 123 | 
            -
            }
         | 
| 124 | 
            -
             | 
| 125 | 
            -
            int map(int x, int in_min, int in_max, int out_min, int out_max)
         | 
| 126 | 
            -
            {
         | 
| 127 | 
            -
                return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
         | 
| 128 | 
            -
            }
         | 
| 129 | 
            -
             | 
| 130 87 | 
             
            ```
         | 
| 131 88 |  | 
| 132 89 | 
             
            ### 補足情報(FW/ツールのバージョンなど)
         | 
