|
|
发表于 2013-11-23 00:34:50
|
显示全部楼层
本帖最后由 hmjack2008 于 2013-11-23 00:47 编辑
jayhe 发表于 2013-11-22 10:36 
不明白啊。。
因为题目设定为 “使开发板不运行烧进去的程序”… 所以我假设,做个” 死循环跳进去”也还在重复运行烧进去的死循环程序…
所以, 从C语言的跳出main()主程序 “return”方向思考….- #include <Arduino.h>
- int main(void)
- {
- init();
- /*** 写自己的程序码, 例如: ***/
- pinMode(2,INPUT_PULLUP); //将2号管脚设置为输入并且内部上拉模式
- pinMode(13,OUTPUT);
- while(1) { // 无穷循环,相当于原来的 loop()
- digitalWrite(13,HIGH);
- delay(500);
- digitalWrite(13,LOW);
- delay(500);
- if(digitalRead(2)==LOW) { // 侦测 2脚按键是否被按下(接地)
- return 1; // 中止arduino的主程序main(),也就是中止arduino的运行了 !!
- }
- }
- /*****************************/
- return 0;
- }
复制代码 或者,
改写Arduino核心程序, 加一个 RUN_Switch程序执行开关- #include <Arduino.h>
- /*** 改写Arduino核心程序, 加一个 RUN_Switch程序执行开关 ***/
- boolean RUN_Switch = HIGH; //设定一个程序执行开关
- int main(void)
- {
- init();
- #if defined(USBCON)
- USBDevice.attach();
- #endif
-
- setup();
- for (;;) {
- loop();
- if (serialEventRun) serialEventRun();
- if(!RUN_Switch) // 侦测 程序执行开关
- return 1; // 中止arduino的主程序main(),也就是中止arduino的运行了 !!
- }
-
- return 0;
- }
- /*** 以下按原来Arduino的写法, 只要将 RUN_Switch关闭, Arduino主程序便会被中止!! ***/
- void setup() {
- /*** 写自己的程序码, 例如: ***/
- pinMode(13,OUTPUT);
- pinMode(2,INPUT_PULLUP); //将2号管脚设置为输入并且内部上拉模式
- }
- void loop() {
- /*** 写自己的程序码, 例如: ***/
- digitalWrite(13,HIGH);
- delay(500);
- digitalWrite(13,LOW);
- delay(500);
- RUN_Switch = digitalRead(2); // 侦测 2脚按键是否被按下(接地), 用来改变 程序执行开关
- }
复制代码 |
|