Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的音频在我的arduino代码中没有播放,但如果我单独播放,它开始工作良好_Arduino_Interrupt_Arduino C++ - Fatal编程技术网

为什么我的音频在我的arduino代码中没有播放,但如果我单独播放,它开始工作良好

为什么我的音频在我的arduino代码中没有播放,但如果我单独播放,它开始工作良好,arduino,interrupt,arduino-c++,Arduino,Interrupt,Arduino C++,我试图设置计时器,之后音频将自动播放一次,但它不会播放任何东西,只是噪音,但当我单独运行音频程序时,它工作得非常好 这是我的代码,请帮我找出哪里做错了 #包括 #包括 #包括 #包括 #包括 int定时器1_计数器; #定义SD_芯片选择引脚4 TMRpcm TMRpcm; 无符号长时间_now=0; 液晶I2C液晶显示器(0x27,16,2); 常量字节ledPin=13; 常量字节中断PIN1=2; 常量字节中断PIN2=3; int计数器2=0; 易失字节状态=低; 整数计数=0; 整数极

我试图设置计时器,之后音频将自动播放一次,但它不会播放任何东西,只是噪音,但当我单独运行音频程序时,它工作得非常好

这是我的代码,请帮我找出哪里做错了

#包括
#包括
#包括
#包括
#包括
int定时器1_计数器;
#定义SD_芯片选择引脚4
TMRpcm TMRpcm;
无符号长时间_now=0;
液晶I2C液晶显示器(0x27,16,2);
常量字节ledPin=13;
常量字节中断PIN1=2;
常量字节中断PIN2=3;
int计数器2=0;
易失字节状态=低;
整数计数=0;
整数极限=0;
bool TimerFlag=假;
int deviceTime=0;
int set=5;
bool soundplayflag=假;
无效设置()
{
lcd.begin();
Serial.begin(9600);
引脚模式(LED引脚,输出);
pinMode(中断PIN1,输入\上拉);
pinMode(中断PIN2,输入\上拉);
pinMode(设置、输入和上拉);
lcd.backlight();
lcd.setCursor(1,0);
lcd.打印(“请选择:”);
noInterrupts();//禁用所有中断
TCCR1A=0;
TCCR1B=0;
TCNT1=0;
OCR1A=31250;//比较匹配寄存器16MHz/256/2Hz
TCCR1B |=(10)
{
如果(deviceTime==计数器2)
{
soundplayflag=false;
Serial.println(“你好世界”);
播放声音();
计数器2=0;
}
}
}
int lcdprint(int a)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.打印(“请选择:”);
lcd.setCursor(7,1);
lcd.打印(a);
序列号println(a);
lcd.setCursor(10,1);
lcd.打印(“最小值”);
}//lcdprint结束(int a)
void PlaySound()
{
对于(int i=0;i<10;i++)
{
tmrpcm.setVolume(5);
tmrpcm.play(“3.wav”);
延迟(1000);
}//循环结束
}//无效结束播放声音()
我的预期输出是,当我设置时间时,它应该播放声音,这似乎与您的
TIMER1\u-vect
冲突。这就解释了为什么如果你不运行其他任何东西,它会起作用

也许试着在ISR中使用?

Serial.println(计数器2/2)是个糟糕的主意。这里有一个分区和一个非常耗时的串行端口操作。