BASCOM AVR в вопросах и ответах
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh, спасибо. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
У Wild Cat-а был на сайте? там все подробно описано!
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Igor_67 писал(а):Ну щас попробую наваять
Автоповтор нажатой кнопки без проблем могу реализовать, а вот чтобы при удержании быстрее менялось через какое-то время пока не соображу.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
При нажатии кнопки - запуск таймера (например TIMER0), потом отслеживание интервала этого таймера. потом сравнение и т.д.
Последний раз редактировалось Igor_67 Чт янв 13, 2011 23:40:25, всего редактировалось 1 раз.
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Igor_67 писал(а):У Wild Cat-а был на сайте? там все подробно описано!
На www.wildcat.org.ru ? Первый раз туда зашел. Посмотрю. Мне даже не сам код особо нужен, на словах достаточно. Спасибо.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Igor_67 писал(а):При нажатии кнопки - запуск таймера, потом отслеживание интервала - все просто!
Да с таймерами все просто, с этим я уже давно разобрался.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Нет, я немного иначе хочу. А если не секрет, как "ИНАЧЕ"?
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Igor_67 писал(а):А если не секрет, как "ИНАЧЕ"?
С автоповтором иначе, просто как проверка удержания кнопки. Если она до сих пор нажата, то никуда не уходим а увеличиваем переменную. А с увеличением скорости еще надо поковыряться.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Я делал так:
Через debounce переходим на метку, далее через waitms 250 проверяем нажата ли кнопка, если да, то увеличиваем "s" , увеличиваем "a". Далее врзвращаемся на проверку нажатия кнопки и ходим по циклу пока кнопка нажата. Там-же в цикле проверяем "S" и если она превысит 10, то начинаем увеличивать "а" на 10.
Думаю ясно об*яснил.
Через debounce переходим на метку, далее через waitms 250 проверяем нажата ли кнопка, если да, то увеличиваем "s" , увеличиваем "a". Далее врзвращаемся на проверку нажатия кнопки и ходим по циклу пока кнопка нажата. Там-же в цикле проверяем "S" и если она превысит 10, то начинаем увеличивать "а" на 10.
Думаю ясно об*яснил.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
kip96 , вот я так автоповтор и делал, об этом выше писал. А у Вас получается что если держать кнопку то сначала увеличиваются единицы, а при дальнейшем удержании - десятки?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток, уважаемые знатоки !
Пожалуйста, помогите решить проблему !
Имеется часть кода:
которая выдает несколько цифр в DTMF на Portb.3.
Проблема такая: изначально на PB3 лог.0. После выдачи всех цифр там устанавливается лог. 1.
("0" - цифра - цифра - цифра - цифра - "1").
Эта лог. 1 мне мешает - держит открытым транзистор, через который цифры DTMF улетают.
Как можно сбросить PB3 в ноль после выдачи цифр ?
Спасибо заранее за ответы !
Пожалуйста, помогите решить проблему !
Имеется часть кода:
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 в вопросах и ответах
самое простое
portX.X=0
portX.X=0
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):самое простое
portX.X=0
Уже пробовал.
Не вышло !
С уважением,
Алексей.
Алексей.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
конечно не выйдет, Вы же таймерне выключили и не высвободили этот вывод ...
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
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 в вопросах и ответах
edm2007 писал(а): сначала увеличиваются единицы, а при дальнейшем удержании - десятки?
Получается так. Но это Вам решать, десятки , а можно вдвое.
Просто как вариант.
Можно при S =10 можно уменьшить waitms, скажем до 100.
Это как Ваша фантазия позволит. Просто у меня таймеры были заняты. Кстати, один таймер как раз работал на то, чтобы выходить в основной режим если кнопку долго не нажимали.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
kip96 писал(а):edm2007 писал(а): сначала увеличиваются единицы, а при дальнейшем удержании - десятки?
Получается так. Но это Вам решать, десятки , а можно вдвое.
Просто как вариант.
Можно при S =10 можно уменьшить waitms, скажем до 100.
Это как Ваша фантазия позволит. Просто у меня таймеры были заняты. Кстати, один таймер как раз работал на то, чтобы выходить в основной режим если кнопку долго не нажимали.
Спасибо, это хороший вариант, именно такая идея мне в голову и пришла. А таймеры я и не хочу использовать, для другого пригодятся. Можно посмотреть кусок кода выхода в основной режим? Очень интересно.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Хотел было кусок кода выложить, но посмотрел, программа сильно ветвится, поэтому по куску не понять, надо всю программу выкладовать.
Оно и так всё понятно
Оно и так всё понятно
Код: Выделить всё
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 в вопросах и ответах
kip96 писал(а):Оно и так всё понятно
Если честно, то пока не совсем.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон