Например TDA7294

Форум РадиоКот • Просмотр темы - BASCOM AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 25, 2024 00:31:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6019 ]     ... , , , 107, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2011 20:51:10 
Первый раз сказал Мяу!

Зарегистрирован: Пт апр 04, 2008 08:48:57
Сообщений: 38
Рейтинг сообщения: 0
Подскажите, пожалуйста команду для работы с матричной клавиатурой (Getkbd()), что бы код кнопки выбирался не при нажатии, а при отпускании кнопки.... т.е. надо проверку на отпускание кнопки, как это сделать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2011 21:38:30 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
Атмега8515, несколько последних попыток прошивать закончились крахом. Стер микросхему и прошил нормально, после чего заработал. Теперь включил в программе таймер для генерации ШИМ, прошил и мой МК больше не подавал признаков жизни. Конфигурацию фузов не менял, настроен на внешний кварц - 10 МГц.


какие могут быть соображения?

программатор покупной Авр910, другие МК прошивает на ура, так что проблема не в нем.
Чуть не забыл, программирую внутри схемы, на линиях к программатору ничего нет и плата чистая, никакого флюса и мусора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2011 22:00:35 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
us5caa писал(а):
Подскажите, пожалуйста команду для работы с матричной клавиатурой (Getkbd()), что бы код кнопки выбирался не при нажатии, а при отпускании кнопки.... т.е. надо проверку на отпускание кнопки, как это сделать?



Раньше по теме описывали. При нажатии на кнопку отправить в подпрограмму, где проверять - не отпустили ли кнопку. И если отпустили, выполнить ... ну, что там надо.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2011 19:34:35 
Первый раз сказал Мяу!

Зарегистрирован: Пт май 23, 2008 03:48:36
Сообщений: 36
Откуда: Украина
Рейтинг сообщения: 0
Кто может, гляньте, почему в железе не работает код обработки длинного нажатия кнопки, хотя в Протеусе все работает как надо:
If Pind.2 = 0 Then Nlock1 = Nlock1 + 1
Waitms 100
If Nlock1 = 20 Then
If Pind.0 = 1 Then
Portd.0 = 0
Else
Portd.0 = 1
End If
Nlock1 = 0
End If

В архиве полный текст и протеус-проект


Вложения:
POWER SUPLY.rar [28.26 KiB]
Скачиваний: 196
Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2011 23:58:57 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
посмотрите как в этой программе реализован переход в сервис, и попробуйте так же.
офф. кстати для прота есть энкодер


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 24, 2011 00:07:42 
Первый раз сказал Мяу!

Зарегистрирован: Пт май 23, 2008 03:48:36
Сообщений: 36
Откуда: Украина
Рейтинг сообщения: 0
raf65 писал(а):
посмотрите как в этой программе реализован переход в сервис, и попробуйте так же.
офф. кстати для прота есть энкодер


Так Я тоже пробовал.

Код:
Sub Knoblong()

If Pind.2 = 0 Then
Goto Startknoblong
End If
Goto Endknoblong

 Startknoblong:
 Nlock1 = 1

 Asdf:
 If Pind.2 = 0 Then
     Nlock1 = Nlock1 + 1
      Waitms 100
      If Nlock1 = 20 Then
             Portd.0 = 0

      End If
     Goto Asdf

 End If
 If Pind.0 = 0 Then
 Locate 1 , 9
 Lcd " PWR OFF"
 Waitms 1000
 End If
Endknoblong:

End Sub


Может это связано с компилятором? Ну я не знаю, вдруг наименование метки слишком длинное, к примеру...

PS Чё-то не нашел энкодера :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 24, 2011 00:46:59 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
я так понял, второе долгое нажатие должно включить блок, а он не включает? или что то другое


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 24, 2011 11:38:53 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
vanyap1 писал(а):
Атмега8515, несколько последних попыток прошивать закончились крахом. Стер микросхему и прошил нормально, после чего заработал. Теперь включил в программе таймер для генерации ШИМ, прошил и мой МК больше не подавал признаков жизни. Конфигурацию фузов не менял, настроен на внешний кварц - 10 МГц.

Проблема решена. Как оказалось, при стирании - черт знает как установились новые фюзы, от и все дела.
Микросхема включилась на внешний тактирующий сигнал, а на схеме установлен кварц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 01:56:28 
Первый раз сказал Мяу!

Зарегистрирован: Пт май 23, 2008 03:48:36
Сообщений: 36
Откуда: Украина
Рейтинг сообщения: 0
raf65 писал(а):
я так понял, второе долгое нажатие должно включить блок, а он не включает? или что то другое

Оба варианта в Протеусе работают корректно. Когда прошивка залита в контроллер, то при длинном нажатии ничего не происходит вообще. Ни выключает, ни включает.


Последний раз редактировалось vitalkalm Вс дек 25, 2011 02:17:45, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 02:10:09 
Первый раз сказал Мяу!

Зарегистрирован: Пт май 23, 2008 03:48:36
Сообщений: 36
Откуда: Украина
Рейтинг сообщения: 0
vanyap1 писал(а):
vanyap1 писал(а):
Атмега8515, несколько последних попыток прошивать закончились крахом. Стер микросхему и прошил нормально, после чего заработал. Теперь включил в программе таймер для генерации ШИМ, прошил и мой МК больше не подавал признаков жизни. Конфигурацию фузов не менял, настроен на внешний кварц - 10 МГц.

Проблема решена. Как оказалось, при стирании - черт знает как установились новые фюзы, от и все дела.
Микросхема включилась на внешний тактирующий сигнал, а на схеме установлен кварц.

Может не прошла идентификация чипа, а Вы при этом нажали "Program". Вообще я приучился от других програм при программировании сначала ститывать фузы, а затем зашивать программу(был горький опыт поначалу...).
Кстате, как-то попадался на подобное - чип запрограммировал от внешнего тактирования по неопытности. Но понял я это после того, как удалось его считать, но каким образом! Вместо установленного согласно схемы кварца на 16 Мгц, вставил на несколько сот килогерц. Проц завелся!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 02:48:05 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
vitalkalm писал(а):
raf65 писал(а):
я так понял, второе долгое нажатие должно включить блок, а он не включает? или что то другое

Оба варианта в Протеусе работают корректно. Когда прошивка залита в контроллер, то при длинном нажатии ничего не происходит вообще. Ни выключает, ни включает.


попробуй так
Код:
Sub Knoblong()
   If Pind.2 = 0 Then
    Nlock1 = Nlock1 + 1
    Waitms 100
      If Nlock1 <= 10 Then
      set Portd.0
       Else
      reset Portd.0
      End If
 end IF
      If Nlock1 = 20 Then

      Nlock1 = 0
    end IF
    End Sub


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 13:27:32 
Первый раз сказал Мяу!

Зарегистрирован: Пт май 23, 2008 03:48:36
Сообщений: 36
Откуда: Украина
Рейтинг сообщения: 0
Так отключится порт до следующего цикла, но если отпусить кнопку, то порт снова включится?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 13:51:36 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 303
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2225
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мда... Что же Вы имели ввиду под "порт отключится" и "порт снова включится"? :) А в предыдущем примере вообще ерунда. Нужно по факту нажатия сидеть на жопе и щупать вывод кнопки. И до тех пор пока кнопка удерживается, увеличивать значение счетчика. И уже от значения этого счетчика плясать. А в том примере вообще получится подсчет нажатий и не более того...

Посмотрите в сторону While .. Wend, на этой конструкции можно легко сделать проверку на удержание кнопки.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 15:09:46 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
edm2007 писал(а):
Мда... Что же Вы имели ввиду под "порт отключится" и "порт снова включится"? :) А в предыдущем примере вообще ерунда. Нужно по факту нажатия сидеть на жопе и щупать вывод кнопки. И до тех пор пока кнопка удерживается, увеличивать значение счетчика. И уже от значения этого счетчика плясать. А в том примере вообще получится подсчет нажатий и не более того...

Посмотрите в сторону While .. Wend, на этой конструкции можно легко сделать проверку на удержание кнопки.


там кусок кода программы работающей в непрерывном цикле, и пока нажата кнопка увеличивается значение переменной Nlock1


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 15:18:37 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 303
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2225
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
raf65 писал(а):
там кусок кода программы работающей в непрерывном цикле


Лично я вижу не кусок кода а законченую подпрограмму Knoblong, о чем явно говорит Sub. Покажите мне вызов этой подпрограммы. Проверка If .. Then позволяет проверить условие только в один проход. Это же не While .. Wend, которое проверяет "до тех пор пока..."

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 15:20:33 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
to edm2007

vitalkalm писал(а):
Кто может, гляньте, почему в железе не работает код обработки длинного нажатия кнопки, хотя в Протеусе все работает как надо:
If Pind.2 = 0 Then Nlock1 = Nlock1 + 1
Waitms 100
If Nlock1 = 20 Then
If Pind.0 = 1 Then
Portd.0 = 0
Else
Portd.0 = 1
End If
Nlock1 = 0
End If

В архиве полный текст и протеус-проект


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 15:57:23 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 303
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2225
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
raf65, нет, я не о том немного. Это Вы советуете:

raf65 писал(а):
попробуй так


Вот я и спрашиваю, как сделать так, чтобы нажатие и удержание кнопки постоянно вызывало подпрограмму Knoblong. Посмотрите на предложеный Вами же код.

Код:
Sub Knoblong()
   If Pind.2 = 0 Then
    Nlock1 = Nlock1 + 1
    Waitms 100
      If Nlock1 <= 10 Then
      set Portd.0
       Else
      reset Portd.0
      End If
 end IF
      If Nlock1 = 20 Then

      Nlock1 = 0
    end IF
    End Sub


Ну допустим эта подпрограмма была вызвана чем-нибудь типа If Pind.2 = 0 Then Gosub Knoblong. Ну или Call, это не так и важно. Главное, что мы зафиксировали нажатие и ушли на подпрограмму. Где смотрим, ага, кнопка нажата? (спрашивается, нахрена If Pind.2 = 0 Then, если мы туда попали то значит кнопка явно нажата была :) ). Ладно, нажата. Увеличиваем значение счетчика (Nlock1 = Nlock1 + 1). Был он изначально равен 0, стал равен 1, проверили, да, меньше 10, выдали 1 на PORTD.0. И? Что дальше-то? Куда мы уходим по End Sub (Return)? Я и спрашиваю...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 16:11:05 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
вот так она и вызывается :)

Код:
 
.....
Do
 Call Knoblong
Call U_i_metr
Call Diapason                                               'вычисление номера реле
Call Akseler
                                               'подпрограмма коэф ускорения енкод
Call Knob
Call U_i_set
Call Isobra                                                 ' вывод изображения
Loop
 End
....



Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 16:21:21 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 303
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2225
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Появилось 10 свободных минут, появился на свет следующий код под эту задачу:

Код:
$regfile = "attiny2313.dat"     ' тип МК
$crystal = 4000000               ' тактовая частота

'----------

Config Portd.2 = Input      ' кнопка
Config Porta.0 = Output    ' красный светодиод
Config Porta.1 = Output    ' зеленый светодиод

Config Debounce = 50      ' антидребезг

'----------

Dim Count As Byte    ' счетчик удержания кнопки

Reset Porta.0            ' гасим оба светодиода
Reset Porta.1           ' (начальное состояние)

'----------

Do                           ' основной цикл

Debounce Pind.2 , 0 , Button , Sub  ' опрос кнопки

Loop

'----------

Button:                       ' обработка нажатия кнопки

While Pind.2 = 0         ' до тех пор пока кнопка удерживается

Incr Count                 ' увеличиваем счетчик
Waitms 50                 ' задержка

If Count => 20 Then   ' если кнопка удерживается 1 секунду
Reset Porta.0             ' гасим красный светодиод
Set Porta.1                ' включаем зеленый
Count = 0                  ' обнуляем счетчик
Goto Ext                    ' уходим
End If                        ' конец условия

Wend

' если же кнопка удерживалась менее секунды

Reset Porta.1            ' гасим зеленый светодиод
Set Porta.0                ' включаем красный
Count = 0                  ' обнуляем счетчик

Ext:                          ' уходим

Return                      ' возврат в основной цикл 


Сидим себе в основном цикле, болтаем ногой и щупаем кнопку. Как только зафиксировали нажатие - уходим на обработку. А там уже попадаем в ловушку цикла While - Wend. И если кнопка удерживается то тикаем счетчиком. Натикали 1 секунду (50 мс * 20 = 1000 мс = 1 с), включаем зеленый светодиод. Ну а если уж отпустили раньше, то включаем красный.

Код конечно может быть оптимизирован еще, но и в этом состоянии работоспособен вполне. И в протеусе и в железе. В протеусе проект привязываю, а в железе проверил лично. Видео снять? :))

Удержание кнопки

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


Последний раз редактировалось edm2007 Ср дек 28, 2011 19:02:25, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 25, 2011 16:24:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 27, 2009 20:49:06
Сообщений: 87
Откуда: Советск
Рейтинг сообщения: 0
все хорошо, но в программе , в другой подпрограмме, эта кнопка выполняет и другую функцию


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6019 ]     ... , , , 107, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y