|
本帖最后由 MicroCao 于 2013-5-17 17:13 编辑
问题可以理解为两种类型的对象,先是步进电机(Stepper)这个类,再是一个使用了步进电机的机构(ProductionWheel)。这相当于是说ProductionWheel使用了一个Stepper的实例。
1、首先定义了Stepper的类,运行调试后没有问题:
[pre lang="arduino" line="1" file="Stepper"]class Stepper{
private:
int _pulse_Pin;
int _direction_Pin;
boolean _forward_dir_value;
void one_pulse(int pulse_delay_millisec);
public:
boolean dir_seted;
Stepper(int pulse_Pin, int direction_Pin, boolean forward_dir_value);
void one_step(int pulse_delay_millisec);
void directionset(boolean dir);
};
Stepper::Stepper(int pulse_Pin, int direction_Pin, boolean forward_dir_value){
_pulse_Pin = pulse_Pin;
_direction_Pin = direction_Pin;
_forward_dir_value = forward_dir_value;
dir_seted = true;
}
void Stepper:ne_pulse(int pulse_delay_millisec){
digitalWrite(_pulse_Pin, HIGH);
delayMicroseconds(pulse_delay_millisec);
digitalWrite(_pulse_Pin, LOW);
delayMicroseconds(pulse_delay_millisec);
}
void Stepper::directionset(boolean dir){
if(dir){
digitalWrite(_direction_Pin, _forward_dir_value);
dir_seted = true;
}
else{
digitalWrite(_direction_Pin, !_forward_dir_value);
dir_seted = false;
}
}
void Stepper:ne_step(int pulse_delay_millisec){
one_pulse(pulse_delay_millisec);
}[/code]
2、接着写ProductionWheel的类,却发现写到构造函数便写不下去了,调试时,IDE提示“no matching function for call to ‘Stepper::Stepper()’”:
[pre lang="arduino" line="1" file="roductionWheel"]class ProductionWheel
{
private:
boolean _forward_dir_value;
public:
Stepper wheelStepper;
boolean dir_seted; //true表示正转,顺时针转
ProductionWheel(int pulse_Pin, int direction_Pin, boolean forward_dir_value);
};
ProductionWheel:roductionWheel(int pulse_Pin, int direction_Pin, boolean forward_dir_value){
wheelStepper = Stepper(pulse_Pin, direction_Pin, forward_dir_value);
_forward_dir_value = forward_dir_value;
dir_seted = true;
}[/code]
请高手帮忙看看问题出在哪里,真心搞不懂,这个实例的代码应该怎么写
Stepper wheelStepper;
wheelStepper = Stepper(pulse_Pin, direction_Pin, forward_dir_value);
|
|