C++ unsigned int不适用于项目
请帮忙。我有制作模拟合成器的旧代码,无法在teensy 2.0上编译,我使用Arduino 1.6.9和teensyduino 1.29 错误日志:从'void()(uint8_t,unsigned int){aka void()(unsigned char,unsigned int)}'到'void()(uint8_t,int){aka void()(unsigned char,int)}'[-fpermissive]的转换无效 使用函数时,此处出现错误:doBendC++ unsigned int不适用于项目,c++,arduino,teensy,C++,Arduino,Teensy,请帮忙。我有制作模拟合成器的旧代码,无法在teensy 2.0上编译,我使用Arduino 1.6.9和teensyduino 1.29 错误日志:从'void()(uint8_t,unsigned int){aka void()(unsigned char,unsigned int)}'到'void()(uint8_t,int){aka void()(unsigned char,int)}'[-fpermissive]的转换无效 使用函数时,此处出现错误:doBend void doBend
void doBend(byte channel, unsigned int bend_usb) {
byte chip_select = channel / 4;
channel = channel % 4;
bendMSB = bend_usb >> 7;
bendLSB = bend_usb % B01111111;
if(channel >=0 && channel <= 2) {
bend_MSB[channel + (chip_select * 4)] = bendMSB;
bend_data[channel + (chip_select * 4)] = bend_MSB[channel + (chip_select * 4)];
writeFrequency(pitchData[channel + (chip_select * 4)], channel, chip_select);
}
}
void-doBend(字节通道,无符号int-bend_usb){
字节芯片_选择=通道/4;
通道=通道%4;
bendMSB=bend_usb>>7;
bendLSB=bend_usb%B01111111;
如果(channel>=0&&channel问题可能与此表达式有关:
usbMIDI.setHandlePitchChange(doBend);
在此表达式中,doBend
作为指向函数的指针。您能检查setHandlePitchChange
函数的参数类型吗?“我不知道我在做什么,请帮我解决这个问题”通常情况下效果不太好。参数的usbMIDI.setHandlePitchChange
预期的函数签名是什么?int
将自动转换为“unsigned int”。看起来函数签名与所需的函数指针签名不匹配。没错,在您回复我的同时,我正在编辑我的答案.现在,你的答案看起来应该是评论。是的,我知道你还不能评论。