- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想配置我的按钮并配置 LED 闪烁速度,以便当我第一次按下按钮时 LED 闪烁速度变慢。当我第二次按下时,LED 的闪烁速度仍然更慢,当我第三次按下时,LED 的闪烁速度最慢。
毕竟,当我第四次按下按钮时,我想关闭 LED(即在我按下按钮之前不闪烁)。我想我可以用 mod 运算符来做到这一点 (a % 3 == 0
???)
这是我更新后的代码:
unsigned int rate = 1000000;
int NUM_STATES = 4 ;
unsigned int counter=1;
for(;;)
{
if( buttonPressed() )
{
rate += 2000000;
counter++;
}
if(counter % 4 == 0)
{
rate = 0;
}
flashSequence(rate);
}
}
int buttonPressed(void)
{
if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0))
return 1;
else
return 0;
}
void flashSequence (int rating)
{
if (rating == 0)
GPIO_ResetBits(GPIOD,
GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
else
{
/* PD12 to be toggled */
GPIO_SetBits(GPIOD, GPIO_Pin_12);
/* Insert delay */
Delay(rating);
/* PD13 to be toggled */
GPIO_SetBits(GPIOD, GPIO_Pin_13);
/* Insert delay */
Delay(rating);
/* PD14 to be toggled */
GPIO_SetBits(GPIOD, GPIO_Pin_14);
/* Insert delay */
Delay(rating);
/* PD15 to be toggled */
GPIO_SetBits(GPIOD, GPIO_Pin_15);
/* Insert delay */
Delay(rating);
GPIO_ResetBits(GPIOD,
GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
Delay(rating);
}
}
最佳答案
counter % 3
将产生 0、1 或 2,但您描述了四种状态,因此需要 counter % 4
。其实你没有描述第一次按下前的状态,所以可能有5个。
如果状态数不是 2 的幂,使用模 n 将在计数器环绕时导致不连续。对于 unsigned int
计数器,这可能不是一个实际限制,但它至少是一个潜在的错误。
您发布的代码片段将无法工作,因为(除其他问题外)counter
未在循环中修改,因此它永远不会退出,也永远不会更改闪烁速率。
您需要以下形式的东西:
int rate = 0 ; // Off
#define NUM_STATES = 4 ; (0 to 3)
for(;;)
{
if( buttonPressed() )
{
rate++ ;
rate %= NUM_STATES ;
}
flashSequence( rate ) ;
}
flashSequence()
是一个以与 rate
成正比的速率闪烁的函数,零 (0) 是“OFF”的特例。
关于c - STM32F407VG6 按钮 LED 闪烁速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747459/
嘿,我 wounderd 如果有什么。我可以继续阅读以改进此代码的突击队吗?至少它现在可以工作,但需要做一些微调:) 如您所见,代码非常困惑且难以阅读。希望有人能帮忙。 提前谢谢。 int potPi
我使用 AVR 作为微 Controller ,ATMEGA8 作为处理器(在微 Controller 内部)。带有微 Controller 的电路板有 4 个 LED。我能够刻录程序并点亮 LEDS
谁能解释一下两者之间的关系 LED 像素密度, LED像素高度和宽度 , 和 分辨率在创建模拟器时方法很详细。。并在启动时再次默认值:皮肤尺寸、密度;缩放密度以实现大小? 最佳答案 像素密度:每英寸像
我有一个由大小为 64*64 的 LED 组成的阵列。每个 LED 都可以点亮各种颜色,并且可以非常快速地改变颜色。我的最终目标是:对于网络摄像头接收到的每一帧,我希望能够从帧中“提取”LED 数组,
我正在使用 Arduino Uno 软件进行编码,但遇到了问题。我试图以随机顺序打开 8 个 LED,然后立即将它们全部关闭。我的问题是 LED 会多次点亮相同的 LED,但最终不会全部点亮。这使得电
当我使用Ethernet.begin(mac,ip)时,LED灯不会打开和关闭。但是当我不使用那条线时它就可以工作。但我需要使用以太网和 UPP 模块来打开和关闭。我怎样才能? 板卡型号:以太网08T
我试图顺时针和逆时针方向点亮我的 LED 灯。我使用mpu6050作为LED的方向控制。我检查了我的 mpu6050 驱动代码,它们没问题。顺时针方向工作时效果很好,所有 LED 灯均呈红色亮起。像这
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!