纠正以下arduino代码的错误 #define InBtnPin 3 #define OutDPin 13 class Button { public: //成员函数 Button(int pbtn,int dpin):buttonpin(pbtn),diodepin(dpin)(); ~Button(void)() void Fun(int buttonpin,int diodepin); int buttonpin; int diodepin; }; void Bu
时间: 2023-07-16 22:11:42 浏览: 65
JC_Button:Arduino库,用于消除按钮开关的抖动,检测按下,释放和长按
下面是已修正的代码:
```
#define InBtnPin 3
#define OutDPin 13
class Button {
public:
//构造函数
Button(int pbtn, int dpin): buttonpin(pbtn), diodepin(dpin) {}
//析构函数
~Button(void) {}
//成员函数
void Fun();
int buttonpin;
int diodepin;
};
void Button::Fun() {
pinMode(buttonpin, INPUT);
pinMode(diodepin, OUTPUT);
digitalWrite(diodepin, HIGH);
if (digitalRead(buttonpin) == HIGH) {
digitalWrite(diodepin, LOW);
} else {
digitalWrite(diodepin, HIGH);
}
}
Button Bu(InBtnPin, OutDPin);
void setup() {
Serial.begin(9600);
}
void loop() {
Bu.Fun();
delay(100);
}
```
修正的地方如下:
1. 构造函数的定义中,应该是冒号,而不是分号,并且需要传入参数,所以应该是 `Button(int pbtn, int dpin): buttonpin(pbtn), diodepin(dpin) {}`。
2. 析构函数的定义中,不需要传入参数,并且也是冒号,所以应该是 `~Button(void) {}`。
3. 成员函数 `Fun()` 中,不需要传入参数,因为已经在构造函数中传入了。同时,应该在函数开头设置 pinMode(),并且在函数末尾调用 digitalWrite(),这样才能实现按下按钮时点亮 LED 灯的效果。
阅读全文