C Raspberry Pi PWM驱动LED停止按钮
我对raspberry Pi编程还不熟悉,我的任务是构建一个“警报”,用一个按钮激活,用同一个按钮停止。 现在我想包括一个PWM驱动的LED,从高到低衰减。我的问题是,我不知道如何通过按下按钮来摆脱循环C Raspberry Pi PWM驱动LED停止按钮,c,loops,raspberry-pi,pwm,C,Loops,Raspberry Pi,Pwm,我对raspberry Pi编程还不熟悉,我的任务是构建一个“警报”,用一个按钮激活,用同一个按钮停止。 现在我想包括一个PWM驱动的LED,从高到低衰减。我的问题是,我不知道如何通过按下按钮来摆脱循环 while(1) { // Wenn das erste mal gedrückt führe schleife aus if(digitalRead(5)==1 && alarm==0) { //warte 300ms d
while(1)
{
// Wenn das erste mal gedrückt führe schleife aus
if(digitalRead(5)==1 && alarm==0)
{
//warte 300ms
delay(300);
//setze flag auf eins (Schleife war aktiv)
alarm=1;
}
//Wenn die Taste vorher schon einmal gedrückt wurde, stoppe LED
else if (digitalRead(5)==1 && alarm==1)
{
//warte 300ms
delay(300);
// Schalte den Alarm wieder aus
alarm=0;
// Schalte LED aus
digitalWrite(0, 0);
}
//Solange Alarm eingeschaltet, führe Schleife aus
while (alarm==1 && digitalRead(5)==0)
{
for(up = 1; up <= 100 | digitalRead(5)==1; up++)
{
softPwmWrite (0, up);
delay(10);
}
delay(1000);
for(down = up; down >= 0 | digitalRead(5)==1; down--)
{
softPwmWrite (0, down);
delay(10);
}
delay(1000);
}
}
while(1)
{
//这是我的生日礼物
如果(数字读取(5)=1和报警==0)
{
//疣状300毫米
延迟(300);
//塞兹旗(施莱夫战争)
报警=1;
}
//在斯多普的带领下,我们品尝了一顿丰盛的晚餐
否则如果(数字读取(5)=1和报警==1)
{
//疣状300毫米
延迟(300);
//雪尔特报警系统
报警=0;
//沙尔特领导的澳大利亚
数字写入(0,0);
}
//索兰热警报系统,führe Schleife aus
同时(报警==1&&digitalRead(5)==0)
{
对于(向上=1;向上=0 |数字读取(5)==1;向下--)
{
软写入(0,向下);
延迟(10);
}
延迟(1000);
}
}
我实际上来自德国,所以我的评论很不幸是德国的。但我希望你们能帮我:/bool shouldbarkflag=0//然后在某个点读取按钮并设置该标志,检查while循环中的标志,如果设置了则中断。在停止中断之前,请确保将其关闭;还是我错过了什么。。。。。。