вот как это понять? по какому принципу это работает?
char* messages[] = {
"My name is Arduino",
"Buy books by Simon Monk",
"Make something cool with me",
"Raspberry Pis are fruity"};
void setup()
{
Serial.begin(9600);
}
void loop()
{
int delayPeriod = random(2000, 8000);
delay(delayPeriod);
int messageIndex = random(4);
Serial.println(messages[messageIndex]);
}
одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива. и в книге про этот принцип ни слова
по какому принципу это работает? одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива.
Ну, Вас же не удивляет, что одна и та же подбрасываемая монетка в одном случае определяет кому за пивом бежать, а в другом - кому в поезде нижняя полка достанется. Или удивляет? По какому принципу работает монетка?
одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива
И что вас смущает? - в обоих случаях команда просто возвращает случайное целое число в определенном диапазоне, а уж время это или позиция в массиве - определяется тем, как вы это число используете
Посмотрел, вам я этой ссылки не давал (там три статьи на тему делея), почитайте, может просветление наступит.
Статья дурная. Вылизывание и якобы "оптимизация" начинающим (да и не только) ВООБЩЕ вредны!
Лучше бы за логикой следить, оформлением и наглядностью изложения.
Статья дурная. Вылизывание и якобы "оптимизация" начинающим (да и не только) ВООБЩЕ вредны!
Лучше бы за логикой следить, оформлением и наглядностью изложения.
Не соглашусь, для новичков, а к ним и себя отношу, хорошо описан принцип. ИМХО.
Согласен Леший туфтень написал, как бы не бредовей Алекса Гайвера. Если во времена мой регистрации я бы считал это божественным откровением, то сейчас это вредная дрянь. И лучше ее не читать.
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Нет там никаких "преимуществ" или "недоимуществ" . И я и Логик там объяснили, что это два РАЗНЫХ решения, для разных задач.
прошлое = настоящее --- обеспечивает интервал между событиями НЕ МЕНЬШЕ заданного;
прошлое += интервал --- обеспечивает постоянное количество событий за единицу времени. Если нет пропусков, то интервал НЕ БОЛЬШЕ заданного.
-------------------------
Следует отметить, что в "настольном" программировании нормой является ПЕРВОЕ решение, как бы не газировал лужу наш "короткий волновик". Так как чаще важнее чтобы интервал между обработками был НЕ МЕНЬШЕ заданного.
Вернее так: если ты опрашиваешь систему, которой нужно время на генерацию данных - то первый вариант, если сам генерируешь события для внешнего счета - то второй. Мне задачи второго типа не встречались.
По мне бредовость не в этом. Скорее при объяснении Леший , пытаясь упростить объяснение для "новичков" протупил "как новички". Какой подход новичков в написании . Накачать с инете готовые рабочие куски написать в кучу и запустить. Ну ладно на форуме попросить "клея для склейки" и "дихлофоса для багов" . А они форумчане , "жлобы проклятые" продают за "большие деньги" . А где здесь millis(). Так это с чего начинается объяснений почему "клей" и "дихлофос" дорогой. Понятно millis() это "программный клей" и есть. А дихлофос это не пихать куда попало в setup loop все что свеже-позаимствованно с просторов инета , а оформлять в виде функций и методов.
int ledPin = 13;//переменная на 13 ножке
volatile boolean flashFast = false; //назначение глобальной переменной и присвоение логического ноля.
void setup(){
pinMode(ledPin, OUTPUT);// 13 выход
attachInterrupt(0, stuffHapenned, FALLING);//прерывание второй контакт срабатывать при нуле
}
void loop()
{
int period = 1000; //локальная переменная с присвоением значения 1000
if (flashFast) period = 100;//оператор. если переменная flashFast что?
digitalWrite(ledPin, HIGH);//еденица на 13 ножке
delay(period);//преостановить на время period
digitalWrite(ledPin, LOW);//ноль на 13 ножке
delay(period);//преостановить на время period
}
void stuffHapenned()
{
flashFast = ! flashFast;//заменить имеющееся значение на противоположное
}
а зачем тогда в 9й строчке переменной period присваивается значение 1000, если она ни где кроме оператора if не участвует, а в нем ей сразу присваевается значение 100?
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Нет там никаких "преимуществ" или "недоимуществ" . И я и Логик там объяснили, что это два РАЗНЫХ решения, для разных задач.
прошлое = настоящее --- обеспечивает интервал между событиями НЕ МЕНЬШЕ заданного;
прошлое += интервал --- обеспечивает постоянное количество событий за единицу времени. Если нет пропусков, то интервал НЕ БОЛЬШЕ заданного.
-------------------------
Следует отметить, что в "настольном" программировании нормой является ПЕРВОЕ решение, как бы не газировал лужу наш "короткий волновик". Так как чаще важнее чтобы интервал между обработками был НЕ МЕНЬШЕ заданного.
Вернее так: если ты опрашиваешь систему, которой нужно время на генерацию данных - то первый вариант, если сам генерируешь события для внешнего счета - то второй. Мне задачи второго типа не встречались.
человек не написавший ни одной задачи под QNX пытается что-то тут сказать, да у меня станки на длине 2000мм имели точность позиционирования 1 микрон, а точность на фрезеровании 2 микрона, да что говорить, здесь программисты реального точного железа в глаза не видевшие, естественно ПО было забугорное, ты ж так писать не можешь, мозги работают то наоборот )))
а зачем тогда в 9й строчке переменной period присваивается значение 1000, если она ни где кроме оператора if не участвует, а в нем ей сразу присваевается значение 100?
затем, чтобы при нажатии кнопки период моргания сменялся с 1 секунды на 0,1 секунды
ааааааааааааа......... понял! до меня только что дошло что оператор if закончился в той же строчке в 10й... а то я сижу и думаю чем же она мигает))))))))))))))))
ааааааааааааа......... понял! до меня только что дошло что оператор if закончился в той же строчке в 10й... а то я сижу и думаю чем же она мигает))))))))))))))))
поэтому Евгений Петрович много раз повторяет, закавычивайте как можно чаще, улучшает читабельность кода...
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
где a b c итд адрес бита в байте?
это сами битовые переменные, если их нет в языке, то это совершенно не значит, что их не существует в природе )))
"энтя опять я" ткните пальцем, пожалуйста, в место из за которого после того как значение в порту чуть переваливает за сотню, процесс резко ускоряется.
int timeRequest = 0;
int i = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
if (timeRequest==0){
timeRequest = millis();
}
if (millis() - timeRequest >= 300ul){
int clockFeed;
Serial.print("POLY4uLocb ");
timeRequest = 0;
if ( Serial.println(i)){
i++;
}
}
}
"энтя опять я" ткните пальцем, пожалуйста, в место из за которого после того как значение в порту чуть переваливает за сотню, процесс резко ускоряется.
а я как раз читаю
э это пример из книги, ток там с функцией delay а я модернизирую... что бы хоть что то в голове откладывалось
что значит "слишком много аргументов для функции ' void flash()'" ?
Ну, "много" - это значит "больше, чем ожидалось". Даже не знаю, как объяснить ...
По украински это: занадто багато аргументів для функції ' void flash()'
По китайски: 函數的參數過多 ' void flash()'
Какой язык Вы понимаете?
извините, поторопился с вопросом, пол страницы пропустил
в электронном виде тяжеловато читать...
Лучше комиксами?
На бумажном носителе намного удобнее. Но я ни чего у нас в книжных не нашел похожего. Только заказывать видимо
ты вот этим
чо сказать хотел? Пусть переменная TIM тут постоит? Ну, пусть, Клапа не запрещал пока, вроде.
В версии скетча примера, на месте ТИМ стояли delay(а тут не время в цифрах , а перемення int, которая назначались в круглых скобках функции flash ) ;
Вот нихрена збадуна не понял.
С телефона не получается код вставить... До компа доберусь, всо покажу
Так в функции flash, оберните код в блинка без делея и делайте инверсию по интервалу. Делей в лоб не лечится.
bwn, ему в вашем сообщении только слово лоб понятно ))
вот оригинальный скетч
к сожалению Logik почти прав...
"найдите 10 отличий"
Посмотрите, например, как описана процедурв flash в оригинале и что с ней сделали вы
вот как это понять? по какому принципу это работает?
одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива. и в книге про этот принцип ни слова
по какому принципу это работает? одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива.
Ну, Вас же не удивляет, что одна и та же подбрасываемая монетка в одном случае определяет кому за пивом бежать, а в другом - кому в поезде нижняя полка достанется. Или удивляет? По какому принципу работает монетка?
одна и та же команда random() в первом случае она выбирает время а во втором номер строки из массива
И что вас смущает? - в обоих случаях команда просто возвращает случайное целое число в определенном диапазоне, а уж время это или позиция в массиве - определяется тем, как вы это число используете
точно, но вот почему то доходит до меня это когда уже сюда спрошу.
спасибо))
Вот нихрена збадуна не понял.
я не с бодуна, а тоже ни хрена не понял, отсталые мы )))
к сожалению Logik почти прав...
Посмотрел, вам я этой ссылки не давал (там три статьи на тему делея), почитайте, может просветление наступит.
отличная статья! Благодарю
Посмотрел, вам я этой ссылки не давал (там три статьи на тему делея), почитайте, может просветление наступит.
Статья дурная. Вылизывание и якобы "оптимизация" начинающим (да и не только) ВООБЩЕ вредны!
Лучше бы за логикой следить, оформлением и наглядностью изложения.
Статья дурная. Вылизывание и якобы "оптимизация" начинающим (да и не только) ВООБЩЕ вредны!
Лучше бы за логикой следить, оформлением и наглядностью изложения.
Не соглашусь, для новичков, а к ним и себя отношу, хорошо описан принцип. ИМХО.
Насчёт принципа согласен. Насчёт оптимизации нет. Это уже потом, при необходимости. С этим и компилятор хорошо справляется.)
Согласен Леший туфтень написал, как бы не бредовей Алекса Гайвера. Если во времена мой регистрации я бы считал это божественным откровением, то сейчас это вредная дрянь. И лучше ее не читать.
Учит, а написал хрень:
Учит, а написал хрень:
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Я бы тоже хотел узнать, что не так с previousMillis в данном случае.
Учит, а написал хрень:
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Нет там никаких "преимуществ" или "недоимуществ" . И я и Логик там объяснили, что это два РАЗНЫХ решения, для разных задач.
прошлое = настоящее --- обеспечивает интервал между событиями НЕ МЕНЬШЕ заданного;
прошлое += интервал --- обеспечивает постоянное количество событий за единицу времени. Если нет пропусков, то интервал НЕ БОЛЬШЕ заданного.
-------------------------
Следует отметить, что в "настольном" программировании нормой является ПЕРВОЕ решение, как бы не газировал лужу наш "короткий волновик". Так как чаще важнее чтобы интервал между обработками был НЕ МЕНЬШЕ заданного.
Вернее так: если ты опрашиваешь систему, которой нужно время на генерацию данных - то первый вариант, если сам генерируешь события для внешнего счета - то второй. Мне задачи второго типа не встречались.
По мне бредовость не в этом. Скорее при объяснении Леший , пытаясь упростить объяснение для "новичков" протупил "как новички". Какой подход новичков в написании . Накачать с инете готовые рабочие куски написать в кучу и запустить. Ну ладно на форуме попросить "клея для склейки" и "дихлофоса для багов" . А они форумчане , "жлобы проклятые" продают за "большие деньги" . А где здесь millis(). Так это с чего начинается объяснений почему "клей" и "дихлофос" дорогой. Понятно millis() это "программный клей" и есть. А дихлофос это не пихать куда попало в setup loop все что свеже-позаимствованно с просторов инета , а оформлять в виде функций и методов.
отчаялся понять, о чём вообще эта тема - судя по постам, каждый о персональном геморрое.
динамически управляемая генерация событий с динамически изменяемым интервалом времени между событиями
http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-...
Доброго вечера. Уважаемые знатоки, помогите пожалуйста разобраться
строчки 9 и 10.
оператор
аналогичен такому
оператор
аналогичен такому
не обязательно, любое значение отличное от нуля, в этом контексте оно логическое, но может же быть любая переменная
а зачем тогда в 9й строчке переменной period присваивается значение 1000, если она ни где кроме оператора if не участвует, а в нем ей сразу присваевается значение 100?
Учит, а написал хрень:
Я, Вас, таки умоляю, ту тему читал, но преимуществ практического применения, по сравнению с вышеприведенным, не углядел, за исключением академического поглаживания ЧСВ, может не дорос.((((
Нет там никаких "преимуществ" или "недоимуществ" . И я и Логик там объяснили, что это два РАЗНЫХ решения, для разных задач.
прошлое = настоящее --- обеспечивает интервал между событиями НЕ МЕНЬШЕ заданного;
прошлое += интервал --- обеспечивает постоянное количество событий за единицу времени. Если нет пропусков, то интервал НЕ БОЛЬШЕ заданного.
-------------------------
Следует отметить, что в "настольном" программировании нормой является ПЕРВОЕ решение, как бы не газировал лужу наш "короткий волновик". Так как чаще важнее чтобы интервал между обработками был НЕ МЕНЬШЕ заданного.
Вернее так: если ты опрашиваешь систему, которой нужно время на генерацию данных - то первый вариант, если сам генерируешь события для внешнего счета - то второй. Мне задачи второго типа не встречались.
человек не написавший ни одной задачи под QNX пытается что-то тут сказать, да у меня станки на длине 2000мм имели точность позиционирования 1 микрон, а точность на фрезеровании 2 микрона, да что говорить, здесь программисты реального точного железа в глаза не видевшие, естественно ПО было забугорное, ты ж так писать не можешь, мозги работают то наоборот )))
а зачем тогда в 9й строчке переменной period присваивается значение 1000, если она ни где кроме оператора if не участвует, а в нем ей сразу присваевается значение 100?
затем, чтобы при нажатии кнопки период моргания сменялся с 1 секунды на 0,1 секунды
ааааааааааааа......... понял! до меня только что дошло что оператор if закончился в той же строчке в 10й... а то я сижу и думаю чем же она мигает))))))))))))))))
ааааааааааааа......... понял! до меня только что дошло что оператор if закончился в той же строчке в 10й... а то я сижу и думаю чем же она мигает))))))))))))))))
поэтому Евгений Петрович много раз повторяет, закавычивайте как можно чаще, улучшает читабельность кода...
Во-во! А то появится какая-нибудь
и чё с ней делать?
не, ну имелось же ввиду логическая единица т.е. +5в
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
где a b c итд адрес бита в байте?
всем хорошего настроения! подскажите пожалуйста что подразумевается под словами "логический" и "битовый":
"Важно различать логический оператор "И" - && и битовый оператор "И" - &. Тоже самое относится к логическому оператору "ИЛИ" - || и битовому оператору "ИЛИ" - |." ?
P.S. Что такое бит представление имею))
&& - логический оператор AND, оперирует понятиями true и false
& - побитовый оператор AND, оперирует битами
Если булеву алгебру в децтве не учил - тут тебе вряд ли помогут, несмотря на то, что ты знаешь, что "бит это байт минус налоги".
дед, ты продолжи, что записи для битов могут иметь и иной вид a*b*c + a*d ....
где a b c итд адрес бита в байте?
это сами битовые переменные, если их нет в языке, то это совершенно не значит, что их не существует в природе )))
принял, понял, закрепил.
"энтя опять я" ткните пальцем, пожалуйста, в место из за которого после того как значение в порту чуть переваливает за сотню, процесс резко ускоряется.
"энтя опять я" ткните пальцем, пожалуйста, в место из за которого после того как значение в порту чуть переваливает за сотню, процесс резко ускоряется.
Тип переменной сменить на unsigned long.
получается что в типе int памяти не хватает? она при таком построении скетча не стирает что ли ни чего и хранит каждое пропечатанное значение?