BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

Igor_67 писал(а):Кто сталкивался с такой проблемой
Думаю проблема как раз в устройстве программы. Программы с динамической индикацией уже обсуждались не раз. Вы куда таймеры то кропите ? Аж три штуки в 8-ой меге.
Вот тут не смотрели?http://bascom.at.ua/publ/i2c_clock_alarm/1-1-0-29
Главное раскоментированно отлично. И всё понятно что-да как. A у Вас ни одного комента.
В Протеусе вместо Нех вставьте Obj и пошагово ппоймёте что откуда лезет.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Да, пожалуй так будет лучше. Всем спасибо!
Цапу крутить надо!!! Ку или не ку?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

При прогоне видно что он в S помещает 1 (когда минуты = 1, разумеется). А это что слева что справа - 1. Так же и с остальными до 9. Все так и должно быть. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

Друзья, у меня вот какой вопрос. К порту подключен семисегментный индикатор. Но подключен без точки и занимает 7 ног. На 8 ноге висит зуммер. Индикация в прерывании. Получается что при каждой обработке прерывания пищалка выключается. Что естественно мешает ее работе. Вопрос заключается в следующем, как оставить пин порта в том состоянии, в котором он есть (зуммер включен, например)? Сейчас цифра закидывается так:

Код: Выделить всё

Portb = Lookup(d1 , Digits)


Зуммер подключен к PORTB.0
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

У меня был подобный вопрос.
Попробуй в масив записать цифры в бинарном коде но не 8 а 7 знаков-

Код: Выделить всё

&b1000110
примерно так. При этом зумер должен быть на 7 порте (portb.7 к примеру)
А так вечером надо глянуть как я делал.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

Пользовалься ли кто-нибудь командой ENCODER?
Не могу сейчас совладать с глюком, очень похожим на дребезг контактов.
Стоит ли пытаться ставить на ноги А и В энкодера дополнительные подтягивающие резисторы 10кОм, как советуют тут и конденсаторы как тут
Осциллографа к сожалению нет, чтоб посмотреть импульсы с энкодера :(
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

Это единственная команда, работа которой меня удовлетворила. Остальные предложенные в декаде работали плохо. При этом ни каких дополнительных элементов. Резисторы вообще лишние, т.к. там и так подтяжка 10 КОм. Просто с хелпа загружаем програму, подключаем к терминалу и смотрим. У меня ошибок было где-то 2%. При этом энкодер от магнитолы и довольно старой.
Сейчас работает у меня уже с полгода, проблем не вижу.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

kip96 писал(а):У меня был подобный вопрос.
Попробуй в масив записать цифры в бинарном коде но не 8 а 7 знаков
Это была самая первая мысль, которая мне пришла в голову. Но проверив в симуляторе увидел что при загрузке 7 знаков все равно ноль пишется. :(
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

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. Думал, что задержка большая и энкодер некорректно обрабатывается. Отключал этот сигнал, все равно работает нестабильно.
Поправьте пожалуйста код, или покажите пример своего кода
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Друг Кота
Аватара пользователя
Сообщения: 3641
Зарегистрирован: Пт апр 03, 2009 22:12:58
Откуда: Из Украины, Кировоградская облась,

Сообщение Redrik Shuhart »

Странный баг, кода который дал Игорь мне на прошлой странице, при нажатии по очереди зажигает все светодиоды, либо на основном, либо на фальстарте..
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

Redrik Shuhart писал(а):Странный баг, кода который дал Игорь мне на прошлой странице, при нажатии по очереди зажигает все светодиоды, либо на основном, либо на фальстарте..
Примерно так? ***************** <<<<<< Необходимости в ссылке не увидел. Удалил.

А Игорь код и не давал особо. Он просто указал на очевидные вещи. А то что у тебя на PORTB.0 висит светик (согласно твоей схеме - 14 нога), а ты пишешь:

Код: Выделить всё

If PinB.0 = 1 Then A = A + 1
- это уже дело другое...
Последний раз редактировалось edm2007 Сб мар 19, 2011 09:52:49, всего редактировалось 3 раза.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

А вообще конечно использовать мегу8 для такой задачи... 4 зеленых лампы + 4 красных лампы + 2 светодиода (1 минута и 20 секунд) + 4 кнопки столов + 2 кнопки запуска (1 минута и 20 секунд) + 1 вывод для зуммера + 2 вывода питания и 1 вывод reset = 20 ног = Attiny2313.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3641
Зарегистрирован: Пт апр 03, 2009 22:12:58
Откуда: Из Украины, Кировоградская облась,

Сообщение Redrik Shuhart »

Взял то, что было...
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

Вопрс опять про команду ENCODER
Почему она в моем куске кода, выложеном чуть ранее, плюсует по 3-4 секунды на один щелчок энкодера??? Как убрать такой дискретный шаг и сделать его равным 1?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

Redrik Shuhart писал(а):Поправьте пожалуйста код, или покажите пример своего кода
У меня команда полностью с хелпа, даже имена подпрограмм не переименовывал. :dont_know: Ваша отличается только присутствием условия в подпрограмме.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

kip96 писал(а):
У меня команда полностью с хелпа, даже имена подпрограмм не переименовывал. :dont_know: Ваша отличается только присутствием условия в подпрограмме.
Я так понял это мне ответили, а не Редрику?
С хэлпа или нет, разницы то? как с дискретностью энкодера боролись или почему он дает этот дискрет?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

Ну да, Вам конечно. Блин с кнопкой "цитата" запутался
Про какую дескретность Вы говорите, На один щелчёк одно изменение. У меня так работает. Вы пишите что на щелчёк-4 изменения.
:dont_know: Я не знаю в чём проблемма! С программой с хелпа на терминал -также?
вообщем у меня так-же как в хелпе, ни каких доп элементов нет. Работает без проблем.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

kip96 писал(а):Вы пишите что на щелчёк-4 изменения...
В том и дело что не первый случай такого. На форуме баскома: http://www.mcselec.com/index2.php?optio ... ht=encoder
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

Ну не знаю, чё мне на Библии поклястся!
a в протосе попробывать? Так-же?
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

kip96 писал(а):Ну не знаю, чё мне на Библии поклястся!
a в протосе попробывать? Так-же?
Да ну что Вы !!! Никто же не говорит что оно не может работать. Просто пытаемся понять почему оно не всегда с этой командой работает. Теперь по-сути: энкодеров под рукой небыло, выпаял обычный контактный из мышки. Специально накидал код, чтобы ничего лишнего. Только индикация и пример из хелпа. В обработке направлений инкремент / декремент отображаемой переменной. Энкодер работает, направление определяется без проблем. И медленно крутишь и быстро - все замечательно. НО !!! Увеличение / уменьшение четко на 2 !!! А теперь крутим медленно. Как только вал начинает двигаться +1. Доходим до щелчка - еще +1. То бишь +1 между фиксированными положениями находится. :) Вот я и думаю...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Ответить

Вернуться в «AVR»