首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不命名类型,也不声明错误。

不命名类型,也不声明错误。
EN

Stack Overflow用户
提问于 2017-08-24 04:40:21
回答 2查看 521关注 0票数 0

我试着制造一个振动检测仪,并遵循了制造商的指导,在那里我购买了Arduino,但我遇到了错误。我试着改变

代码语言:javascript
运行
复制
unsigned char state = 0;

代码语言:javascript
运行
复制
unsigned char state;
state =0;

不走运。

错误是:

代码语言:javascript
运行
复制
error: 'digital' does not name type
'blink' was not declared in this scope
'state' was not declared in this scope

码:

代码语言:javascript
运行
复制
int SensorLED = 13;                              //define LED digital pin 13
int SensorINPUT = 3;                           // connect tilt sensor to   interrupt 1 in
digital pin 3
unsigned char state = 0;

void setup() {
pinMode(SensorLED, OUTPUT);      //configure LED as output mode
pinMode(SensorINPUT, INPUT);     //configure tilt sensor as input mode
//when low voltage changes to high voltage, it triggers interrupt 1 and runs the blink function
attachInterrupt(1, blink, RISING);
}


void loop(){
if(state!=0){                                                     // if state is not 0
state = 0;                                                     // assign state value 0
digitalWrite(SensorLED,HIGH);               // turn on LED
delay(500);                                                 // delay for 500ms
}
else{
digitalWrite(SensorLED,LOW);                 // if not, turn off LED
}
}


void blink(){                                              // interrupt             function blink()
state++;                                                    //once trigger the interrupt, the state keeps increment
} 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-24 07:53:32

首先,

代码语言:javascript
运行
复制
unsigned char state = 0;

代码语言:javascript
运行
复制
unsigned char state;
state =0;

是完全一样的。

代码中digital pin 3行的含义是什么。您已经定义了SensorINPUT = 3,使其成为INPUT将使pin D3作为输入引脚。

因此,只要删除这一行,代码就会编译得很好。其余的错误似乎仅仅是由于这一行。

票数 0
EN

Stack Overflow用户

发布于 2017-08-24 07:56:04

我不是在评论功能,但错误可以这样修正:

代码语言:javascript
运行
复制
const byte SensorLED = 13;
const byte SensorINPUT = 3;


volatile byte state = LOW;

void blink(void)
{
  state = !state;
}

void setup() 
{
  pinMode(SensorLED, OUTPUT);      
  pinMode(SensorINPUT, INPUT);     
  attachInterrupt(1, blink, RISING);
}


void loop()
{
   digitalWrite(SensorLED, state);
   delay(500);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45853069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档