Igor_67 писал(а):Кто сталкивался с такой проблемой
Думаю проблема как раз в устройстве программы. Программы с динамической индикацией уже обсуждались не раз. Вы куда таймеры то кропите ? Аж три штуки в 8-ой меге.
Вот тут не смотрели?http://bascom.at.ua/publ/i2c_clock_alarm/1-1-0-29
Главное раскоментированно отлично. И всё понятно что-да как. A у Вас ни одного комента.
В Протеусе вместо Нех вставьте Obj и пошагово ппоймёте что откуда лезет.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
При прогоне видно что он в S помещает 1 (когда минуты = 1, разумеется). А это что слева что справа - 1. Так же и с остальными до 9. Все так и должно быть.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Друзья, у меня вот какой вопрос. К порту подключен семисегментный индикатор. Но подключен без точки и занимает 7 ног. На 8 ноге висит зуммер. Индикация в прерывании. Получается что при каждой обработке прерывания пищалка выключается. Что естественно мешает ее работе. Вопрос заключается в следующем, как оставить пин порта в том состоянии, в котором он есть (зуммер включен, например)? Сейчас цифра закидывается так:
Пользовалься ли кто-нибудь командой ENCODER?
Не могу сейчас совладать с глюком, очень похожим на дребезг контактов.
Стоит ли пытаться ставить на ноги А и В энкодера дополнительные подтягивающие резисторы 10кОм, как советуют тут и конденсаторы как тут
Осциллографа к сожалению нет, чтоб посмотреть импульсы с энкодера
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Это единственная команда, работа которой меня удовлетворила. Остальные предложенные в декаде работали плохо. При этом ни каких дополнительных элементов. Резисторы вообще лишние, т.к. там и так подтяжка 10 КОм. Просто с хелпа загружаем програму, подключаем к терминалу и смотрим. У меня ошибок было где-то 2%. При этом энкодер от магнитолы и довольно старой.
Сейчас работает у меня уже с полгода, проблем не вижу.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
kip96 писал(а):Просто с хелпа загружаем програму, подключаем к терминалу и смотрим. У меня ошибок было где-то 2%. При этом энкодер от магнитолы и довольно старой.
Сейчас работает у меня уже с полгода, проблем не вижу.
Я так и делал как в хэлпе. Не совсем правда понял что дают задержки wait 0 или 1. Но с нулем работает стабильней. Только вот код обрабатывается нестабильно. Есть пропуски и х много, и даже ошибки направлений, при прокручивании например по часовой стрелке может выдать и обратное направление.
Set_time:
Gosub Raschet
enc=Encoder(pind.4, pind.3, Set_time_minus, Set_time_plus, 0)
Goto Set_time
Set_time_minus:
If Secunde > 1 Then
Decr Secunde
Gosub Beep1
End If
Return
Set_time_plus:
If Secunde < 599 Then
Incr Secunde
Gosub Beep1
End If
Return
beep1 - звуковой сигнал длительностью 5мс. Дает щелчки при изменении переменной Secunde. Думал, что задержка большая и энкодер некорректно обрабатывается. Отключал этот сигнал, все равно работает нестабильно.
Поправьте пожалуйста код, или покажите пример своего кода
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Redrik Shuhart писал(а):Странный баг, кода который дал Игорь мне на прошлой странице, при нажатии по очереди зажигает все светодиоды, либо на основном, либо на фальстарте..
Примерно так? ***************** <<<<<< Необходимости в ссылке не увидел. Удалил.
А Игорь код и не давал особо. Он просто указал на очевидные вещи. А то что у тебя на PORTB.0 висит светик (согласно твоей схеме - 14 нога), а ты пишешь:
А вообще конечно использовать мегу8 для такой задачи... 4 зеленых лампы + 4 красных лампы + 2 светодиода (1 минута и 20 секунд) + 4 кнопки столов + 2 кнопки запуска (1 минута и 20 секунд) + 1 вывод для зуммера + 2 вывода питания и 1 вывод reset = 20 ног = Attiny2313.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Вопрс опять про команду ENCODER
Почему она в моем куске кода, выложеном чуть ранее, плюсует по 3-4 секунды на один щелчок энкодера??? Как убрать такой дискретный шаг и сделать его равным 1?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
У меня команда полностью с хелпа, даже имена подпрограмм не переименовывал. Ваша отличается только присутствием условия в подпрограмме.
Я так понял это мне ответили, а не Редрику?
С хэлпа или нет, разницы то? как с дискретностью энкодера боролись или почему он дает этот дискрет?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Ну да, Вам конечно. Блин с кнопкой "цитата" запутался
Про какую дескретность Вы говорите, На один щелчёк одно изменение. У меня так работает. Вы пишите что на щелчёк-4 изменения. Я не знаю в чём проблемма! С программой с хелпа на терминал -также?
вообщем у меня так-же как в хелпе, ни каких доп элементов нет. Работает без проблем.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
kip96 писал(а):Ну не знаю, чё мне на Библии поклястся!
a в протосе попробывать? Так-же?
Да ну что Вы !!! Никто же не говорит что оно не может работать. Просто пытаемся понять почему оно не всегда с этой командой работает. Теперь по-сути: энкодеров под рукой небыло, выпаял обычный контактный из мышки. Специально накидал код, чтобы ничего лишнего. Только индикация и пример из хелпа. В обработке направлений инкремент / декремент отображаемой переменной. Энкодер работает, направление определяется без проблем. И медленно крутишь и быстро - все замечательно. НО !!! Увеличение / уменьшение четко на 2 !!! А теперь крутим медленно. Как только вал начинает двигаться +1. Доходим до щелчка - еще +1. То бишь +1 между фиксированными положениями находится. Вот я и думаю...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон