Еще раз про delay() и millis().
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 - 01:00
Здравствуйте.
Необходимо избавится от delay(20);
Сделал так:
unsigned long currentTime;
void modx1() {
for(int i = 0; i < (0,100); i = i + 1) {
leds[i] = CRGB::Green;
FastLED.show();
// delay(20);
int OldTime=millis();
while((millis()-OldTime)<=20)
Serial.println(OldTime);
}
}
Беда в том что как только «OldTime» принимает отрицательное значение система перестает работать.
Если будет свободная минутка, подскажите пожалуйста, где я ошибаюсь.
Спасибо
время не может принимать отрицательные значения:
unsignedlongOldTime=millis();-----------
08intOldTime=millis();09while((millis()-OldTime)<=20)10Serial.println(OldTime);11}мои поздравления! - ты переизобрёл делей.
del
Принимаю поздравления. Тронут. Скупая мужская слеза скатилась по не бритой щеке. И всё же?
Если предложите свой вариант буду признателен.
Или Вы так? Потролить?
Leprechaun перечитайте коммент #1 внимательно -там содержится правильный совет.
dimax, Приветствую. Можно как для тупых?) Задача"i+1" Через промежуток "X". Как мне это реализовать? Спасибо.
P.S.
опечатка
Принимаю поздравления. Тронут. Скупая мужская слеза скатилась по не бритой щеке. И всё же?
Если предложите свой вариант буду признателен.
класс титановый велосипед для delay без delay().
Или Вы так? Потролить?
будешь выёбываться и тупить - пойдёшь нахуй.
Leprechaun, перестаньте тупить
читайте эту строчку до полного просветления в голове.
unsigned long не может быть отрицательным в принципе.
0 - 20 == 4294967275
#include<FastLED.h> #define LED_DT 12 // Serial data pin for WS2801, WS2811, WS2812B or APA102 // Serial clock pin for WS2801 or APA102. #define COLOR_ORDER GRB // It's GRB for WS2812B #define LED_TYPE WS2812B // What kind of strip are you using? #define NUM_LEDS 100 // Number of LED's. unsigned long OldTime; CRGBArray <NUM_LEDS> leds; uint8_t max_bright = 255; #define SERIAL_BAUDRATE 57600 void setup() { Serial.begin(SERIAL_BAUDRATE); // SETUP HARDWARE SERIAL (USB) LEDS.setBrightness(max_bright); // Set the generic maximum brightness value. LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER >(leds, NUM_LEDS); // WS2812B definition set_max_power_in_volts_and_milliamps(5, 500); //5V, 500mA Serial.println("---SETUP COMPLETE---"); } // setup() void loop() { modx0();modx1(); } void modx0() { for(int i = 0; i < (0,100); i = i + 1) { leds[i] = CRGB::Green; FastLED.show(); // delay(20); int OldTime=millis(); while((millis()-OldTime)<=20) Serial.println(OldTime); } } void modx1() { for(int i = 0; i < (0,100); i = i + 1) { leds[i] = CRGB::Blue; FastLED.show(); // delay(20); int OldTime=millis(); while((millis()-OldTime)<=20) Serial.println(OldTime); } }Так понятно?
Если OldTime=32757. Перестает действовать"задержка". Клапауций 823, выпендриваться на форуме у тебя единственная возможность почувствовать свою значимость?
Я создал топик для того что бы получить помощь более опытных людей. Вообще ни разу не для развеивания чужих комплексов. Есть желание помочь? Ок. Нет? Читай свой собственный пост выше.
Так понятно?
ок. мало того, что тупой - так ещё и упёртый.
раз:
34intOldTime=millis();миллис имеет тип данных unsigned long - об этом я тебе сказал здесь #1
если тебе желается привести unsigned long в int, то делай это осознанно и если это точно необходимо, но не нужно затем вычитать отрицательные числа из unsigned long и убивляться глюкам.
раз:
34intOldTime=millis();миллис имеет тип данных unsigned long - об этом я тебе сказал здесь #1
если тебе желается привести unsigned long в int, то делай это осознанно и если это точно необходимо, но не нужно затем вычитать отрицательные числа из unsigned long и убивляться глюкам.
Во) Спасибо. теперь понял. Работает. Давай мирится? ))
Во) Спасибо. теперь понял. Работает. Давай мирится? ))
я с тобой и не ссорился.
Ок)) Хорошего дня.
Ок)) Хорошего дня.
ну, ок. и, что ты дальше будешь делать с твоим, уже рабочим, но делаем?
может прочитаешь следующий мой пост #5 прежде, чем радоваться?
Обязательно прочту.
Еще бы найти уников которые в bool millis() засунули бы. А потом бы возмущались, почему не работает. А ведь догаться что в int millis() не влазит тяжело. Пока помещается работает, а если вылез все . Конец работе.
Работа Демо версии int millis () закончилась, пожалуйста преобретите полную версию unsigned long millis ().
Слет лохов-оптимистов в теме?
Ну грузим бля мегаскетч с int millis ().
int m; void setup() { Serial.begin(9600); m=millis(); } void loop() { int t=millis(); if((t-m)>10000) { Serial.print(m);Serial.print(" "); Serial.print(t);Serial.print(" "); Serial.print(t-m);Serial.print(" "); Serial.println(millis()); m=t; } }Выводит.
может прочитаешь следующий мой пост #5 прежде, чем радоваться?
Тут не следующий нужно читать, тут еще тот самый №1 надо перечитывать - особенно последнюю строку.
2ТС: От delay Вы так и не избавились, Вы просто переписали ее по-другому.
Еще бы найти уников которые в bool millis() засунули бы. А потом бы возмущались, почему не работает. А ведь догаться что в int millis() не влазит тяжело. Пока помещается работает, а если вылез все . Конец работе.
я нашёл такого - это я #1 и у меня работает.
Тут не следующий нужно читать, тут еще тот самый №1 надо перечитывать - особенно последнюю строку.
2ТС: От delay Вы так и не избавились, Вы просто переписали ее по-другому.
слёт коматозников, блин:
ТС, читает то, что я ему сказал, а рептилоид читает внимательно ВСЕ строки моих постов
ну, ок. и, что ты дальше будешь делать с твоим, уже рабочим, но делаем?
может прочитаешь следующий мой пост #5 прежде, чем радоваться?
Ну грузим бля мегаскетч с int millis ().
афигеть!
теперь всё тоже самое с char сотвори - народ должен проникнуться до всей глубины конца дна и срочно переписать статью millis()