查看: 525|回复: 9
打印 上一主题 下一主题

想实现“一直按着G键灯亮,松开灯就灭“的效果

[复制链接] qrcode

27

主题

32

帖子

95

积分

注册会员

Rank: 2

积分
95
楼主
跳转到指定楼层
发表于 2015-11-11 05:53 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);
}

void loop()
{
if(Serial.available())
{
   char number =Serial.read();
   if (number==\'G\')            
   {
      digitalWrite(2,HIGH);
    }
}

  else
   {digitalWrite(2,LOW);}
}



模拟图和程序在这里,但是实际情况是按了G灯也不亮

现在是不清楚计算机对于”一直按着G“是怎么判断的,是类似一个接一个的短脉冲还是持续高电平这样判断的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

83

帖子

25

积分

新手上路

Rank: 1

积分
25
沙发
发表于 2015-11-11 08:29 AM | 只看该作者
这样仿真应该不行吧,应该要弄个虚拟键盘之类的东西才可以吧!
回复 支持 反对

使用道具 举报

0

主题

84

帖子

18

积分

新手上路

Rank: 1

积分
18
板凳
发表于 2015-11-11 09:06 AM | 只看该作者

一个C文件里会有一个Main函数的吧,而一般在Main函数里会有一个While循环在不段扫描按键的状态,像你这种写法的话,上电程序从头执行到最后就不会再从头去查询按键状态了,MCU自然也就不知道自己IO口的最新状态了!可以按照如下格式去写:

void main()

{

    while(1)

    {

        用户函数;

    }

}

回复 支持 反对

使用道具 举报

1

主题

87

帖子

25

积分

新手上路

Rank: 1

积分
25
地板
发表于 2015-11-11 09:25 AM | 只看该作者
玩单片机吧。这问题秒秒钟解决
回复 支持 反对

使用道具 举报

21

主题

447

帖子

753

积分

高级会员

Rank: 4

积分
753
5#
发表于 2015-11-11 09:28 AM | 只看该作者
PC上按键时,有一个延时判断,这样就不会是连续发送,串口的速度也没有那么快的,结果会是LED在闪烁。另外你写的是大写G,改成小写的试试。
回复 支持 反对

使用道具 举报

0

主题

93

帖子

16

积分

新手上路

Rank: 1

积分
16
6#
发表于 2015-11-11 10:11 AM | 只看该作者
小写可以
回复 支持 反对

使用道具 举报

0

主题

93

帖子

60

积分

注册会员

Rank: 2

积分
60
7#
发表于 2015-11-11 04:14 PM | 只看该作者
大小写无所谓,也能检测到大写的
回复 支持 反对

使用道具 举报

31

主题

227

帖子

339

积分

中级会员

Rank: 3Rank: 3

积分
339
8#
发表于 2015-11-11 05:31 PM | 只看该作者
仿真不对
回复 支持 反对

使用道具 举报

14

主题

129

帖子

128

积分

注册会员

Rank: 2

积分
128
9#
发表于 2015-11-12 01:42 AM | 只看该作者
请问能给个思路么。。
回复 支持 反对

使用道具 举报

0

主题

82

帖子

4

积分

新手上路

Rank: 1

积分
4
10#
发表于 2015-11-21 11:17 PM | 只看该作者
仿真是指当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,然后我们采用模拟手段来进行风险评估。但是像你这种单片机之类的东西,也要进行仿真,有意义吗,开发板这么便宜,直接在开发板上操作不就得了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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