试试这个代码:
#define LED11_PIN 11
#define LED12_PIN 12
#define LED12_BLINK_RATE 1000
#define LED11_BLINK_RATE 1300
class Led
{
private:
bool _ledState;
const int _ledBlinkRate;
double _lastStateChange;
const int _ledPin;
public:
Led(int blinkRate, int ledPin) : _ledState(false),_ledBlinkRate(blinkRate), _lastStateChange(millis()), _ledPin(ledPin)
{}
~Led()
{}
void update()
{
double currTime = millis();
if((_lastStateChange + _ledBlinkRate/2) <= currTime)
{
_ledState = !_ledState;
digitalWrite(_ledPin, _ledState);
_lastStateChange = currTime;
}
}
};
Led led11(LED11_BLINK_RATE,LED11_PIN);
Led led12(LED12_BLINK_RATE,LED12_PIN);
void setup()
{
pinMode(LED12_PIN, OUTPUT);
pinMode(LED11_PIN, OUTPUT);
}
void loop()
{
led11.update();
led12.update();
}