Я пишу библиотеку программ на C++ для своего Arduino. Библиотека предназначена для декодера DTMF. У меня возникла проблема, когда дело доходит до добавления двух обнаруженных и проверенных тонов вместе, чтобы вернуть соответствующую кнопку.ввод, если инструкции без инициализации
Я вызываю функцию ниже дважды (она не полностью закончена, но вы, надеюсь, получите мою логику). Если я инициализирую значения R1 & R2 до 0, то они перезаписывают друг друга при втором вызове. Если я не инициализирую их вообще, я получаю ошибку проверки времени выполнения.
Я потратил на 40 часов, пытаясь понять это (я очень простой код!). Любая помощь будет принята с благодарностью!
int DTMF::validate(void)
{
int threshhold = 9000;
int i;
int x;
int y;
// int high[7];
for(i=0; i<7; i++)
{
if(magnitude[i] > threshhold)
{
return(i);
}
}
}
unsigned char DTMF::buttonPressed(void)
{
int validatedFreq = validate();
cout << "valid is returning: " << validatedFreq << endl;
int R1;
int R2;
switch(validatedFreq)
{
case 0:
R1=1;
cout << "DEBUG:This is case 1 R1 output: " << R1 << endl;
break;
case 1:
R1=2;
break;
case 2:
R1=3;
break;
case 3:
R2=4;
cout << "DEBUG:This is case 3 R2 output: " << R2 << endl;
break;
case 4:
R2=5;
break;
case 5:
R2=6;
break;
case 6:
R2=7;
break;
}
if(R1==1 && R2==4)
{
cout << "DEBUG:The value of R1 is " << R1 << " and the value of R2 is " << R2 << endl;
return(button[0]);
}
}
что вы имеете в виду с _they переписываете друг друга_? этот код выглядит нормально на первый взгляд ... каков ожидаемый результат и какой результат вы получаете? – blue