1. unsigned int ledValue = 0; возможно глюк эмуляции, но знаковая переменная не может принять значение 60000.
2. это можно сделать без отдельного таймера, воспользовавшись millis. вот пример. там как бы все расписано. delay(led1Value) по-моему вполне допустим - 60мс не так много.
вот код. ставится в цикл.
PHP код:
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > ledValue)
{
previousMillis = currentMillis;
digitalWrite(ledPin, HIGH);
delay(led1Value);
digitalWrite(ledPin, LOW);
}
3. если хочется сделать через отдельный таймер, можно так. громоздко. да и таймер с периодом 1мс и так есть.
PHP код:
MsTimer2::set(1, flash);
void flash()
{
if(digitalRead(ledPin)==HIGH)
{
time1++;
if(time1>=led1Value)
{
digitalWrite(ledPin,LOW);
time2=0;
}
}
if(digitalRead(ledPin)==LOW)
{
time2++;
if(time2>=ledValue)
{
digitalWrite(ledPin,HIGH);
time1=0;
}
}
}
оба варианта рабочие