新人求助!不胜感激!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2926|回复: 9

[已解决] 新人求助!不胜感激!

[复制链接]
发表于 2014-6-24 14:28 | 显示全部楼层 |阅读模式
用什么方法能暂停执行主程序?而去执行另外个程序。谢谢!
发表于 2014-6-24 15:43 | 显示全部楼层
attachInterrupt(引脚, 调用的函数, 引脚电平变化)

或者把要用的东西写成一个一个函数。然后loop里面只做简单的判断。满足哪个条件调用哪个函数。
 楼主| 发表于 2014-6-25 10:45 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-6-24 15:43
attachInterrupt(引脚, 调用的函数, 引脚电平变化)

或者把要用的东西写成一个一个函数。然后loop里面只做 ...

那怎样再切回主程序呢?
发表于 2014-6-25 11:17 | 显示全部楼层
wdb_9955 发表于 2014-6-25 10:45
那怎样再切回主程序呢?

[mw_shl_code=c,true]void loop() {
  if (state == 1)
  {
    test1();
  }
  else if (state == 2)
  {
    test2();
  }
  else if (state == 3)
  {
    test3();
  }
}[/mw_shl_code]

一直在主程序里啊。
 楼主| 发表于 2014-6-25 15:03 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-6-25 11:17
[mw_shl_code=c,true]void loop() {
  if (state == 1)
  {

void loop()
{ if((flag==0)&&(digitalRead(2)))
   { flag = 1; canshu();delay(100);}   
  else if((flag==1)&&(!digitalRead(2)))
    { flag = 2;delay(100);}
  else  if((flag==2)&&(digitalRead(2)))
    {flag=3;shuju();delay(100);}
   else if((flag==3)&&(!digitalRead(2)))
   {flag = 0;delay(100);}
   delay(1000);
}

这里的canshu()和shuju() 为什么只能在if为真时运行一次,如果需要不断的按照1秒时间不断的执行应该怎么办?
发表于 2014-6-26 09:50 | 显示全部楼层
wdb_9955 发表于 2014-6-25 15:03
void loop()
{ if((flag==0)&&(digitalRead(2)))
   { flag = 1; canshu();delay(100);}   

那么多括号干嘛。。眼都花了。。if(flag == 0 && digitalRead(2));

每隔1秒不断的执行那就是不放在if里面啊。 放在loop大循环里。
 楼主| 发表于 2014-6-26 10:18 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-6-26 09:50
那么多括号干嘛。。眼都花了。。if(flag == 0 && digitalRead(2));

每隔1秒不断的执行那就是不放在if里 ...

如果我想shuju()这个函数不断的被执行,如果放在loop里确实能不断的被执行,但当我切换到canshu()想执行这个函数时,主程序会自动切换到shuju()函数。如果按我上面的方法放在if语句里,就只会执行一次,我该如何是好?
发表于 2014-6-26 22:20 | 显示全部楼层
wdb_9955 发表于 2014-6-26 10:18
如果我想shuju()这个函数不断的被执行,如果放在loop里确实能不断的被执行,但当我切换到canshu()想执行 ...

那是因为你的判断有问题  flag==2  里面马上又赋值了3.  当然只循环一次。
 楼主| 发表于 2014-6-27 10:50 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-6-26 22:20
那是因为你的判断有问题  flag==2  里面马上又赋值了3.  当然只循环一次。

flag 是计数用的,不赋值3,按键就不起作用了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-5 10:20 , Processed in 0.078221 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表