как получить остаток от деления 2000

alexbmd
Offline
Зарегистрирован: 15.01.2016
if ((millis() % 1000) > 500) digitalWrite(Pin, HIGH);
else digitalWrite(Pin, LOW);

математическая загадка.

подскажите чтото я запутался в конец. в примере выше  у нас получаются два диапозона 0-500, 501-999. раз в пол секунды мы моргаем. как моргать раз в секунду?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Посмотрите в примерах Arduino IDE, скетч называется "Blink without delay" - там можно любой интервал назначать.

negavoid
Offline
Зарегистрирован: 09.07.2016
(millis() % 2000) > 1000

но лучше воспользуйтесь #1

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

alexbmd пишет:

как получить остаток от деления 2000

Вот Вы не поверите, но точно также, как в Вашем коде получают остаток от деления на 1000. Только вместо 1000 нужно написать ... ну, давайте, с трёх раз угадайте, Вы можете, мы в Вас верим!!!

Ну, вот, пока я писал пришёл negavoid и отнял у Вас возможность решить такую сложную задачу самостоятельно :((

alexbmd
Offline
Зарегистрирован: 15.01.2016

Евгений спасибо за сарказм, 2000 я прежде чем спрашивать просчитывал

negavoid , делением на 2000 получаем остаток от 0 до 9995, если >1000, то след. диапозоны. 0-1000, 1001-9995, или я чтото непонял?

 

negavoid
Offline
Зарегистрирован: 09.07.2016

Скорее всего, чтото непонял, потому что остаток от деления на 2000 не может быть больше 1999 :)

alexbmd
Offline
Зарегистрирован: 15.01.2016

169999 / 2000 = 84.9995  (т.е. остаток 9995)   

? :) или как?

negavoid
Offline
Зарегистрирован: 09.07.2016

169999 / 2000 = 84, остаток 1999

(84*2000)+1999 = 169999

169999 % 2000 = 1999

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

alexbmd пишет:

169999 / 2000 = 84.9995  (т.е. остаток 9995)   

Мама дорогая!

Срочно изучать что такое остаток от деления. По ссылке материал для начальной школы - не помню второй класс или третий.

b707
Offline
Зарегистрирован: 26.05.2017

ЕвгенийП пишет:

Мама дорогая!

да уж...

alexbmd
Offline
Зарегистрирован: 15.01.2016

говорю же запутался , пока разбирался с регистрами :)

так виндовый калькулятор мне показывает и я чёто понадеялся на него :)

вот даже открыл вашу ссылку (хотя остаток даже в 4 классе не учат но не суть) 17/3=5(2) и на wincal 5.66 итут вопросов нет. 2/3 это как раз 0,66 

 а в случае 169999 / 2000 = 84.9995 ....  а всё. блин его за ногу кто придумал десятичные калькуляторы :)  нет чтоб с дробями работать как американцы как то всё прозрачнее :)

спасибо!

negavoid
Offline
Зарегистрирован: 09.07.2016

У американцев (кто бы мог подумать) точно такая же математика, что и у нас. И уверен, у них тоже встречается народ, не отличающий остаток от деления от дробной части чисел.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

negavoid пишет:

уверен, у них тоже встречается народ, не отличающий остаток от деления от дробной части чисел.

А то! Они ж тупые! Это мы - острые!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

alexbmd пишет:

так виндовый калькулятор мне показывает и я чёто понадеялся на него :)

В виндовом калькуляторе есть кнопочка "mod" - вот по её нажатию показывается остаток от деления. Вывод: калькулятором тоже надо уметь ;)

alexbmd
Offline
Зарегистрирован: 15.01.2016

[off] незнаю где у них Евклид... попробуйте найти ключ на 10 или разобрать своими метрическими ключами их дюймовую машину :) [/off]

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

alexbmd пишет:

[off] незнаю где у них Евклид... попробуйте найти ключ на 10 или разобрать своими метрическими ключами их дюймовую машину :) [/off]

Ну, я ж говорю, тупые!

alexbmd
Offline
Зарегистрирован: 15.01.2016

всё относительно

SLKH
Offline
Зарегистрирован: 17.08.2015

alexbmd пишет:

[off] незнаю где у них Евклид... попробуйте найти ключ на 10 или разобрать своими метрическими ключами их дюймовую машину :) [/off]

у мя французкий автомобиль был, а в нем болты с пятигранными головками. это вам не ключ на 10 искать.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

alexbmd пишет:

хотя остаток даже в 4 классе не учат 

В 4-ом не учат потому, что уже знают. Только что уточнил у внучки, она это проходит прямо сейчас - она в третьем.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

ЕвгенийП пишет:

alexbmd пишет:

хотя остаток даже в 4 классе не учат 

В 4-ом не учат потому, что уже знают. Только что уточнил у внучки, она это проходит прямо сейчас - она в третьем.

С математикой в третьем классе не просто,
ребенку порой не хватает терпения дочитать условие задания доконца, а условия порой ох как противоречивы.
Э.И. Александрова, МАТЕМАТИКА 3 класс, книга 2, 13-е издание, издательство "Вита пресс"" Москва 2016
Страница 90, пункт 5)

Береза в сутки поглощает из почвы и испаряет 40 л влаги, а эвкалипт из-за быстрого роста - в 8 раз больше.
Сколько метров влаги могут поглотить: а) 7 эвкалиптов; б) 3 эвкалипта; в) 6 эвкалиптов?

Спрашиваю, ну что, решила?
Да, решила.
Ну и сколько?
40 * 8 * 7 = 2240 метров
Каких же метров?
А там про метры спрашивалось.

Типа, на улице шел дождь и два студента...

bwn
Offline
Зарегистрирован: 25.08.2014

Алексей. пишет:

С математикой в третьем классе не просто,

ребенку порой не хватает терпения дочитать условие задания доконца, а условия порой ох как противоречивы.
Э.И. Александрова, МАТЕМАТИКА 3 класс, книга 2, 13-е издание, издательство "Вита пресс"" Москва 2016
Страница 90, пункт 5)

Береза в сутки поглощает из почвы и испаряет 40 л влаги, а эвкалипт из-за быстрого роста - в 8 раз больше.
Сколько метров влаги могут поглотить: а) 7 эвкалиптов; б) 3 эвкалипта; в) 6 эвкалиптов?

Спрашиваю, ну что, решила?
Да, решила.
Ну и сколько?
40 * 8 * 7 = 2240 метров
Каких же метров?
А там про метры спрашивалось.

Типа, на улице шел дождь и два студента...

Что сказать, двойка. Правильный ответ: нисколько. И пусть учитель попробует опровергнуть.)))) Второй вариант ответа, 2,24м.куб. Литры легко переводятся в метры, правда, кубические.))) К сожалению, дети еще не настолько ядовиты.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

bwn пишет:
К сожалению, дети еще не настолько ядовиты.
К студенчеству заматереют :)

Как щас помню реферат по истории КПСС на тему "Перегибы в партийной политике и их влияние на основную линию партии". Суть сводилась к тому, что решение уравнения 

d2F(x)
----- = 0
dx2

есть функция

F(x) = C1x + C2

Откуда следует, что постоянные перегибы никак не искривляли прямую генеральную линия партии, т.к. прямая - это и есть линия, имеющая перегиб в каждой точке.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

bwn пишет:
Что сказать, двойка. Правильный ответ: нисколько. И пусть учитель попробует опровергнуть.)))) Второй вариант ответа, 2,24м.куб. Литры легко переводятся в метры, правда, кубические.))) К сожалению, дети еще не настолько ядовиты.

;-))) Это игра в одни ворота, как показывает опыт, можно доказывать что угодно, только легче от этого не становится.

bwn
Offline
Зарегистрирован: 25.08.2014

Ну почему, а самоуважение? Хотя, конечно, для более старшего возраста. ((((

AlexanderNO
Offline
Зарегистрирован: 08.11.2018

Век живи... Тут недавно узнал, что нельзя менять местами множители в задачах. 

Задача. Мама разложила по 3 сырника своим детям Тане и Ване на 2 тарелки. Сколько всего сырников получили на завтрак дети?

Учителя... ссылаются на необходимость объяснить детям, что если они будут умножать сырники на тарелки, то получат сырники. А если тарелки на сырники, то, увы, тарелки. А это не соответствует условию задачи. И именно такая методика преподавания таблицы умножения доводится ло будущих педагогов в вузах.

https://zen.yandex.ru/media/begomvshkolu/ot-peremeny-mest-mnojitelei-proizvedenie-ne-meniaetsia-5c8f8359fbd60d00b4cff879

 

alexbmd
Offline
Зарегистрирован: 15.01.2016

пока суть да дело натайпировал (EugenP request)

void loop()
{
  static int initial = 0;
  static int final = 0;
  Serial.print("Time for %2000: ");
  initial = micros();
  for (int i = 0; i < 1000; i++)
  {
    if ((millis() % 2000) > 999) digitalWrite(13, HIGH);
    else digitalWrite(13, LOW);
  }
  final = micros();
  Serial.print(final - initial);
}

return: initial; final: result

Time for %2000: -5800  -24652  -18852

Time for %2000: 17276  -1760  -19036

Time for %2000: -25380  21508  -18648

Time for %2000: -2108  -20784  -18676

Time for %2000: 21160  2260  -18900

во всех других проверках всегда было ок. тут впервые вижу рандомный минус. откудв он берется?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

alexbmd пишет:

откудв он берется?

Из переполнения. У вас переменные объявлены как int, а что у нас возвращает micros() ? ;)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

alexbmd пишет:

тут впервые вижу рандомный минус. откудв он берется?

Переполнение.

alexbmd
Offline
Зарегистрирован: 15.01.2016

хм, точно. просто это с первых секунд было поэтому я даже как то не подумал что он может переполниться , спасибо.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

alexbmd пишет:

хм, точно. просто это с первых секунд было поэтому я даже как то не подумал что он может переполниться , спасибо.

Переполнение в Вашем случае возникает не "с первых секунд", а после 32-й миллисекунды.

alexbmd
Offline
Зарегистрирован: 15.01.2016

понял спасибо