SMS модуль

Тема в разделе "Посоветуйте детальки", создана пользователем DrProg, 2 авг 2015.

  1. DrProg

    DrProg Вечный нерд

    Докатись до личных оскорблений? Весьма достойно для российского ученого, хоть и в отставке.

    А про антидребезг через прерывания я бы, на вашем месте, не вспоминал. Потому что он так и остался в вашем секретном коде (или воображении), а я его сделал и опубликовал. То, что вы не глядя назвали мой способ говнокодом, не делает вам ни малейшей чести. Скорее наоборот.
     
  2. Onkel

    Onkel Гуру

    Ну вообще-то совет освежить в памяти физику - это совет, а совсем не оскорбление. Вы же, когда написали что я ик с уф спутал - не считали свое мнение за оскорбление?
    Засим свои советы вам заканчиваю, но если будут по -прежнему появляться вредные и (или) безграмотные советы от вашего имени- буду стараться вас поправить.
     
  3. Onkel

    Onkel Гуру

    я поглядел. и увидел, что вы проверяете состояние пина (не изменилось ли) постоянным опросом этого пина. Отсюда и характеристика вашего кода.
     
  4. DrProg

    DrProg Вечный нерд

    Оскорбление это субъективная оценочная характеристика выраженная в уничижительной форме. Вопрос "спутал не спутал" не является оскорблением, а вот слово "балбес" является. За весь трёхтомник нашего общения последних пары недель я вам ни одного грубого слова не сказал. В отличии от.

    Я не против поправок, если они по делу, а не про меня. Поправляйте и дополняйте.
     
    Последнее редактирование: 1 фев 2016
  5. DrProg

    DrProg Вечный нерд

    Давайте подробнее с этого места. А лучше в отдельную тему давайте вынесем. Я опубликую еще раз код, его описание и видео, а вы раскритикуете. Мне вот не понятно чем плох постоянный опрос кнопки в некоторых случаях, когда этот опрос является основным действием программы. Вместо двух digitalRead() с промежутком через delay() или каким то еще вы получаете переменную, в которой всегда хранится устоявшееся положение пина (или нескольких, при необходимости). Я этот метод придумал, благодаря вам в том числе, и уже его использую в реальных устройствах. Код стал проще, прозрачнее и быстрее на опросах. Предложите наконец альтернативу с запуском таймера каждый раз при нажатии кнопки и отлова результата чуть спустя в этом же месте. Сравним чей код лучше.

    Но не здесь и не сейчас.
     
    Последнее редактирование: 1 фев 2016
  6. Onkel

    Onkel Гуру

    устоявшееся положение пина ВСЕГДА хранится в регистровой переменной PIND (для порта D), PINB и PINC для пинов портов В и С. Переменные эти ВСЕГДА доступны через оператор, выполняемый за один такт.
     
  7. DrProg

    DrProg Вечный нерд

    Устоявшееся? А для чего тогда городим огород с антидребезгом?
     
  8. Onkel

    Onkel Гуру

    текущее. Термин "устоявшееся" действительно неоднозначен.
     
  9. DrProg

    DrProg Вечный нерд

    Я под "устоявшимся" имел ввиду тот, что после дребезга. Именно его вычисляет "говнокод" игнорируя все перепады в заданный промежуток времени.
     
  10. Onkel

    Onkel Гуру

    Отнюдь. Если период дребезга больше периода опроса, то говнокод будет давать нам в результате либо "устоявшееся", либо тот же самый дребезг, и мы не можем заранее знать, что в результате дал нам говнокод. А по таймеру- сможем. Так что вкуривайте сабж.
     
  11. DrProg

    DrProg Вечный нерд

    Ваш код сам вычисляет период дребезга? Покажите мне его немедленно!
     
  12. Onkel

    Onkel Гуру

    нет, не вычисляет. Но это не делает ваш говнокод кодом.Мы должны из других каких-то данных знать время дребезга и заложить это при определении параметров таймера. При этом мы должны реально понимать, что дребезг только что вынутого из заводской упаковки контакта и дребезг контакта, стоящего на двери калитки при -30 или при влажности под 100% - две большие разницы.
    Я вам рыбу не обещал, я вам дал удочку. По таймерам, поскольку тут каждый второй вопрос про сервомашинки начинается "дрожит серва", я написал слегка беллетризированный фак по работе с таймерами на примере сервомашинки, почитайте в "что я сделал" про нажиматель кнопок на сервомашинке. Там все про таймеры написано.
     
  13. DrProg

    DrProg Вечный нерд

    В мой код так же закладывается период опроса как и в любой другой (включая аппаратный), в чем разница? Принцип ровно такой же: получили изменение, выждали Nмс, сравнили. Ваша критика не объективна. Понимаю ваше желанине меня обидеть, но это не делает мой код говнокодом. И еще, если бы вы действительно его посмотрели, то не стали бы учить меня работой с портами через PINX.

    ps: Закладывать более 40мс вообще смысла нет, так как это уже не дребезг а быстрое нажатие.
     
  14. Onkel

    Onkel Гуру

    Это откуда такой постулат? у меня 0.3 с.
    Принципы совершенно разные. У грамотного кода принцип- один раз прерывание по таймеру проверяет код, а до и после проверки мк спокойно делает свою работу, например шимом рулит. А у говнокода принцип все время проверять. Один раз и все время (при каждой прокрутке) - есть разница? По- моему есть.
     
  15. DrProg

    DrProg Вечный нерд

    Проводил замеры, у меня получалось нажимать кнопку за 35мс. При 150мс некоторые быстрые нажатия пропускаются вовсе, например на клавиатуре. 300мс, как у вас, это уже неспешное нажатие как на кнопку звонка, кнопку с таким дребезгом неплохо бы поменять.

    До сих пор не понимаю как и зачем вы прерываете шим на время опроса кнопки и, самое главное, как это прерывание на один запуск используете. Расскажите, если не хотите показать.

    Мой код вполне рабочий, компактный и стабильный. Он весьма полезен для ряда случаев. Например при работе с клавиатурой из одной и более кнопок. Разумеется, если все таймеры заняты под завязку плавным освещением лестницы или управлением фонтанных струй, то такой способ может быть не самый удобным. Но с теми задачами, что я реально сталкиваюсь таймеров требуется не так уж много. Куда чаще приходится бороться с дребезгом и таковым способом это удобно и просто. Если вы этого не видите, то либо не хотите, либо не можете, либо неприязнь ко мне заставляет пожертвовать объективностью. В любом случае ваше мнение на этот счет вызывает сомнение в своей абсолютной истинности.
     
  16. где модераторы?
     
    Кирилл_К нравится это.
  17. Onkel

    Onkel Гуру

    у меня нет кнопок с таким дребезгом, Зачем вы за меня выдумываете?. У меня 300 мс типовое время антидребезга.
    Я не прерываю шим на время опроса кнопки. Зачем вы за меня выдумываете?
    Только как пример говнокода, это вроде удаления гландов через задний проход.
     
  18. DrProg

    DrProg Вечный нерд

    Зачем? Разнять великосветскую беседу?

    Ветку от флуда почистить разве что не помешало бы. И не только эту.
     
  19. та чтобы за тобой прибрали.
     
  20. DrProg

    DrProg Вечный нерд

    Напишите уже как вы удалянте гланды. Я вот удаляю успешно, в чем каждый может убедиться скопипастив открытый пример. Только пока сравнить не с чем, разве что поверить на слово. Переделать код под Уну, чтобы было проще?