本篇先使用最简单最容易理解的switch-case方法,来实现状态机编程。 2.1 状态机处理 使用switch-case法实现状态机,一般需要两层switch结构。 2.1.1 第一层switch处理状态 void Bomb1_dispatch(Bomb1 *me, Event const *e) { //第一层switch处理状态 switch (me->state) { //设置状态 case SETTING_STATE: ...
•break:在执行完对应的case后跳出switch语句。 示例 假设有一个小灯可以通过数字输入选择不同的亮度,Arduino的代码可以这样写: intbrightness=0; intoption=2;//输入选项 voidsetup(){ //设置输出引脚 pinMode(9,OUTPUT); } voidloop(){ switch(option){ case1: brightness=127; break; case2: brightness...
2 switch-case嵌套法 状态图设计好之后,就可以对照着状态图,进行编程实现了。 本篇先使用最简单最容易理解的switch-case方法,来实现状态机编程。 2.1 状态机处理 使用switch-case法实现状态机,一般需要两层switch结构。 2.1.1 第一层switch处理状态 代码语言:javascript ...
}//倒计时状态caseTIMING_STATE: {switch(e- >sig) {caseUP_SIG://UP按键信号{ me- >code < <=1; me- >code |=1;//添加一个1bsp_display_user_code(me- >code);break; }caseDOWN_SIG://DWON按键信号{ me- >code < <=1;//添加一个0bsp_display_user_code(me- >code);break; }caseARM...
case ARM_SIG: //ARM键事件 { Serial.print("\nARM : "); e = &arm_evt; break; } default:break; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 3 测试 本例程,使用Arduino作为控制器进行测试,外接3个独立按键和一个IIC接口的OLED...
println("Action of Arduino switch case replacing if else"); digitalWrite(LED, LOW); pinMode(LED,OUTPUT); } void loop(void) { int command = 0; if (Serial.available() ) { char ch = Serial.read(); switch(ch) { case 'a' : command = 10; break; case 'r' : command = 20; ...
在几个语句分支中选择。 SWITCH 选择标准 CASE 标记 1 指令块 指令块 > 默认指令块> ENDSWITCH 选择标准 类型:INT、CHAR、ENUM 可能是所述数据类型的变量、功能调用或表达式。 标记 类型:INT、CHAR、ENUM 标记的数据类型必须与选择标准的数据类型一致。 一个指令块可
case 后面有空格的 孟羽然 小有美名 5 switch没错,但是你的switch没有和Serial.read()放在一起,那么从串口读到的数据不都丢失了吗?另外,c语言里,char就是整型,所以没必要用if语句转换一遍:void loop() { while (Serial.available() > 0) { int ch = Serial.read(); switch(ch) { case '0': di...
//Console.WriteLine("Arduino"); //break; case 2: Console.WriteLine("Arduino"); break; case 3: Console.WriteLine("C++"); break; case 4: Console.WriteLine("C++"); break; case 5: Console.WriteLine("C++"); break; case 6: Console.WriteLine("Scratch"); ...
case 1: printf("执行 case 1\n"); break; case 2: printf("执行 case 2\n"); // 没有 break 语句,将会穿透到下一个 case case 3: printf("执行 case 3\n"); break; default: printf("执行 default\n"); break; } return 0; } 输出结果为: arduino Copy code 执行case 2 执行case 3 在...