Использование MIDI-библиотеки в моей собственной библиотеке
Сообщение об ошибке :
"error: invalid declarator before 'MIDI'
MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);
^
Plusieurs bibliothèque trouvées pour "libMidi.h"
/home/due32/Arduino/libraries/MIDI/midi_Defs.h:170:31: note: in definition of macro 'MIDI_CREATE_INSTANCE'
midi::MidiInterface<Type> Name((Type&)SerialPort);"
libMidi.h
#ifndef libMidi_h
#define libMidi_h
#include <Arduino.h>
#include <MIDI.h>
void midiSetup();
void pmbMIDI();
// void MIDI_CREATE_DEFAULT_INSTANCE(); //не работает
#endif
libMidi.cpp
#include "libMidi.h"
#include <MIDI.h>
void midiSetup(){
//midi::MidiInterface<Type> Name((Type&)SerialPort);
void MIDI_CREATE_DEFAULT_INSTANCE();
void MIDI.begin(MIDI_CHANNEL_OMNI);
}
void pmbMIDI(){
if (MIDI.getType() == 144){
digitalWrite(13, 1);}
if (MIDI.getType() == 128){
digitalWrite(13, 0);}
}
Спасибо заранее
@Pelosh, 👍-1
Обсуждение1 ответ
▲ 0
void MIDI_CREATE_DEFAULT_INSTANCE();
Эта строка не должна помещаться внутри функции, поскольку она является прямым объявлением функции.
Однако я думаю, что в вашем коде есть и другие проблемы.
Мое дикое предположение состоит в том, чтобы улучшить следующие строки:
- Строка раскомментирования, которая не работает
Перемены
MIDI_CREATE_DEFAULT_INSTANCE();
чтобы
MIDI_CREATE_DEFAULT_INSTANCE();
и поместите его вне функции.
Удалите слово "пустота
" в следующих строках
void midiSetup();
void pmbMIDI();
А также выровняйте { и }
void MIDI.begin(MIDI_CHANNEL_OMNI);
Так что это вызов функции.
Другие улучшения заключаются в удалении пробелов или вкладок в
void midiSetup();
void pmbMIDI();
Также выровняйте { и } в
if (MIDI.getType() == 144){
digitalWrite(13, 1);}
if (MIDI.getType() == 128){
digitalWrite(13, 0);}
,
@Michel Keijzers
Смотрите также:
- Как правильно получить MIDI с Arduino, с 6n138?
- exit status 1 - expected primary-expression before '(' token
- Как правильно отправить MIDI с помощью ESP8266?
- ESP32 USB HID/MIDI библиотека (не BLE)
- ATtiny85 MIDI IN с использованием SoftwareSerial – возможно ли это?
- MIDI клавиатура управляемая светодиодная лента
- Отправка MIDI CC на несколько миди-каналов
- Сборка mocoLUFA под OSX и Linux
Вы должны включить полное сообщение об ошибке. Каждая ошибка имеет номер строки, где она произошла. И, пожалуйста, покажите нам ваш полный код, включая скетч Arduino, который использует вашу библиотеку, чтобы мы также могли его протестировать., @chrisl