Есть тело While. И нужно туда засунуть 2 таймера на миллис. То есть сначала напряжение подаётся, потом, через некоторое время - нет. И так по кругу. Чет не получается.
А в чем проблема с миллис? Запомнили время, сравниваем с текущим, когда превысило сработало и снова запомнить время.
Код (C++): while{ if (последее_время - текущее_время>=1мс) { операторы последнее_время=текущее_время } }
Это дико, но я сначала так и делал. Потом вы подсказали. Не работало. Создал подставную программу чисто с этим кодом. Но все равно не работает. Просто через несколько секунд включается и все
Код (C++): #define Led_Pin 13 void flashing(int time_on, int time_off ) { static bool state = 0; static unsigned long time = 0; if ((millis() - time) > (state ? time_on : time_off)) { state = !state; digitalWrite(Led_Pin, state); time = millis(); } } void setup() { pinMode(Led_Pin, OUTPUT); } void loop() { flashing(1000, 3000); }
Код (C++): state ? time_on : time_off значит, что условие if ((millis() - time) > time_on ) В случае "state" > 0 и if ((millis() - time) > time_off) иначе Вместо "state" может быть и оператор сравнения например: a > b?c:d своего рода выбор: x = a>b?c:d Если a > b то x = c иначе x = d
Ты свой код-то покажешь, который не работает,или нам на Хрустальных Шарах гадать? Дак у меня нет, мне его на другом форуме расколотили.