Всем привет. Из темы наверное немного понятно в чем проблема. Хочу заменить delay в коде на millis, чтобы можно было задавать через настройку время когда светодиод включен и время когда выключен. Перелапатил интернет, ничего годного по вопросу не нашел. От проги смог добиться только равномерного цикла (состояние включено = состояние выключено по времени). Пробовал реализовать через true/false, но светодиод просто горит и даже не думает блинковать. Код из ide приложу, человеко/часы понимаю. Код (C++): const int Led = 3; long Flash = 500; long Dark = 1000; void setup(){ Serial.begin(9600); pinMode(Led, OUTPUT); digitalWrite(Led, HIGH); } uint32_t Ms, Ms1 = 0; bool State = true; void loop(){ Serial.println(State); Ms = millis(); if( State = true && ((Ms - Ms1) > Flash)){ Ms1 = Ms; digitalWrite(Led, HIGH); State = false;} if( State = false && ((Ms - Ms1) > Dark)){ Ms1 = Ms; digitalWrite(Led, LOW); State = true;} }
В ардуино специально выключено, чтоб кривые библы не плодили их. А то у юзера-новичка от их количества легкий шок случится.