Счетчик импульсов
- Войдите на сайт для отправки комментариев
Пнд, 16/10/2017 - 22:07
Добрый день, Подскажите как в пару строк сделать счётчик импульсов. Суть в том что просто при изменении положения с 1 на 0 на пине 8 (например) перременная i будет ++, и эта переменная не должна сбрасываться. То что я "написал" я даже выкладывать не буду...
Используйте аппаратное прерывание на 2 или 3 пине, в котором наращивайте глобальную переменную "ай".
Как видите, я уложился в одну строку.
Всё настолько просто, что и я тоже выкладывать не буду...
Всё настолько просто, что и я тоже выкладывать не буду...
Обоснованная критика. Просто бывает надо что то сделать, а настроения нет тяжело перебароть себя. Буду признателен за помощь.
Я немного разобрался и вот что у меня получилось:
Я последовал Вашему совету, если не трудно посмотрите пожалуйста код.
godForgottenBeginner
1. Переменная i используется в прерывании, лучше, что бы она была объявлена, как volatile, т.е.
volatile int i. Зачем это?
2. Serial.begin-у не место в основном цикле, уберите в сетап.
3. С аргументом CHANGE ваше прерывание будет отрабатывать и нажатие и отпускание кнопки. Если нужно что-то одно, то используйте RISING или FALLING, взависимости от включения кнопки (кстати, как она подключена?).
4. "i = i++" так не нужно. Просто оставьте i++ или i += 1
Моё почтение, заработал. Правда когда ставиш сериалпринт в сетап то он ни чего не показывает, просто 0 выводит. Приходиться его ставить в функцию прерывания...
Невнимательно читаете...
Я говорил перенести только инициализацию - Serial.begin().
Нахрена порт всё время инициализировать-то?
Нельзя в прерывании вывод в сериал делать, это долгая процедура, которая сама использует прерывания.
Так ТС просит помощи, а чего говорят не делает, и наоборот ))
Человек сам кузнец 3.14здец своего счастья...