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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Ну щас попробую наваять
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

aleksandr-zh, спасибо. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

У Wild Cat-а был на сайте? там все подробно описано!
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Ну щас попробую наваять


Автоповтор нажатой кнопки без проблем могу реализовать, а вот чтобы при удержании быстрее менялось через какое-то время пока не соображу. :( Буду благодарен даже алгоритму на словах, ибо "в лоб" реализовать не хочется...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

При нажатии кнопки - запуск таймера (например TIMER0), потом отслеживание интервала этого таймера. потом сравнение и т.д.
Последний раз редактировалось Igor_67 Чт янв 13, 2011 23:40:25, всего редактировалось 1 раз.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):У Wild Cat-а был на сайте? там все подробно описано!


На www.wildcat.org.ru ? Первый раз туда зашел. Посмотрю. Мне даже не сам код особо нужен, на словах достаточно. Спасибо. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):При нажатии кнопки - запуск таймера, потом отслеживание интервала - все просто!


Да с таймерами все просто, с этим я уже давно разобрался. :) Нет, я немного иначе хочу. Вот попробую, если что - поделюсь. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Нет, я немного иначе хочу. А если не секрет, как "ИНАЧЕ"?
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):А если не секрет, как "ИНАЧЕ"?


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

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

Сообщение kip96 »

Я делал так:
Через debounce переходим на метку, далее через waitms 250 проверяем нажата ли кнопка, если да, то увеличиваем "s" , увеличиваем "a". Далее врзвращаемся на проверку нажатия кнопки и ходим по циклу пока кнопка нажата. Там-же в цикле проверяем "S" и если она превысит 10, то начинаем увеличивать "а" на 10.
Думаю ясно об*яснил. :wink:
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

kip96 , вот я так автоповтор и делал, об этом выше писал. А у Вас получается что если держать кнопку то сначала увеличиваются единицы, а при дальнейшем удержании - десятки?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

Доброго времени суток, уважаемые знатоки !

Пожалуйста, помогите решить проблему !

Имеется часть кода:

Enable Interrupts
Enable Timer1
Dim Dig(4) As Integer
Dim I As Byte
Dim Zze As Byte

...............
-- что-то делается --
...............

For Zze = 1 To I
Dtmfout Dig(zze) , 150
Waitms 150
Next Zze


которая выдает несколько цифр в DTMF на Portb.3.

Проблема такая: изначально на PB3 лог.0. После выдачи всех цифр там устанавливается лог. 1.
("0" - цифра - цифра - цифра - цифра - "1").
Эта лог. 1 мне мешает - держит открытым транзистор, через который цифры DTMF улетают.

Как можно сбросить PB3 в ноль после выдачи цифр ?

Спасибо заранее за ответы !
С уважением,
Алексей.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

Сообщение aleksandr-zh »

самое простое
portX.X=0
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

aleksandr-zh писал(а):самое простое
portX.X=0


Уже пробовал.

Не вышло ! :cry:
С уважением,
Алексей.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

Сообщение aleksandr-zh »

конечно не выйдет, Вы же таймерне выключили и не высвободили этот вывод ...
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

aleksandr-zh писал(а):конечно не выйдет, Вы же таймерне выключили и не высвободили этот вывод ...


То есть нужно так :
For Zze = 1 To I
Dtmfout Dig(zze) , 150
Waitms 150
Next Zze

Disable timer1

Portb.3 = 0


?

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

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

Сообщение kip96 »

edm2007 писал(а): сначала увеличиваются единицы, а при дальнейшем удержании - десятки?

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

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

Сообщение edm2007 »

kip96 писал(а):
edm2007 писал(а): сначала увеличиваются единицы, а при дальнейшем удержании - десятки?

Получается так. Но это Вам решать, десятки , а можно вдвое.
Просто как вариант.
Можно при S =10 можно уменьшить waitms, скажем до 100.
Это как Ваша фантазия позволит. Просто у меня таймеры были заняты. Кстати, один таймер как раз работал на то, чтобы выходить в основной режим если кнопку долго не нажимали.


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

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

Сообщение kip96 »

Хотел было кусок кода выложить, но посмотрел, программа сильно ветвится, поэтому по куску не понять, надо всю программу выкладовать.
Оно и так всё понятно

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

Seting:
Waitms 500                           -проверка о намерении перейти на скрытое меню
If Kn = 0 Then                       - если через полминуты кнопка удерживается то
B = 10                                  - по прерыванию таймера "В" уменьшается
Do
******
Debounce Kn , 0 , Settime_ind,sub - переходим на подпрограмму в которой "В" устанавливаем в 10
*******
Loop Until B < 5               - если кнопка не нажималась более 5 сек. выходим из цикла и переходим на мет. АА
End If                       если кнопка неудерживалась возвр. в метку АА основного цикла.
Goto Aa
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

kip96 писал(а):Оно и так всё понятно


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

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