Например TDA7294

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





Текущее время: Вт апр 16, 2024 20:09:01

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6019 ]     ... , , , 264, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вт дек 27, 2016 21:39:22 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
akl писал(а):
uk8amk А что такое ADUM485?

опечатка


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 02, 2017 20:54:29 
Родился

Зарегистрирован: Вт янв 18, 2011 00:00:18
Сообщений: 13
Рейтинг сообщения: 0
нужна помощь .как можно вывести поочерёдно на индикатор значения B = Getadc(0) отдельно от значения А . заранее спасибо. плюс файл .
Acp:
Start Adc


A = Getadc(5)
B = Getadc(0)

M1 = A * 5
M2 = M1
M3 = M1


M1 = M1 / 1000
N1 = Abs(m1) '

M2 = M2 Mod 1000
M2 = M2 / 100
N2 = Abs(m2)

M3 = M3 Mod 100
M3 = M3 / 10
N3 = Abs(m3)


Вложения:
фен .0.rar [1.17 KiB]
Скачиваний: 240
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вт янв 03, 2017 11:03:57 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
Заведите счетчик, по которому будет меняться благ. Флагом может служить переменная типа БИТ.
По состоянию блага приравнивайте для М1 - А или В
Как то так..

Код:
dim counter as word , flag as bit

do
incr counter
if counter = 500 then : toggle flag: counter = 0 : end if

A = Getadc(5)
B = Getadc(0)
if flag = 1 then : M1 = A * 5 : else : M1 = B  * 5 : end if
M2 = M1
M3 = M1


M1 = M1 / 1000
N1 = Abs(m1) '

M2 = M2 Mod 1000
M2 = M2 / 100
N2 = Abs(m2)

M3 = M3 Mod 100
M3 = M3 / 10
N3 = Abs(m3)
loop


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 04, 2017 09:24:45 
Родился

Зарегистрирован: Вт янв 18, 2011 00:00:18
Сообщений: 13
Рейтинг сообщения: 0
сильно мерцают цифры на индикаторе.при таком варианте кода.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 04, 2017 10:55:09 
Электрический кот

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

Спойлер
Код:
$regfile = "attiny2313.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32


Config Sda = Porta.1 : Config Scl = Porta.0
Ddrb = 255
Config Portd.3 = Output                                     'ok
Config Portd.4 = Output                                     'ok
Config Portd.5 = Output                                     'ok
Config Portd.6 = Output                                     'ok

Dim N(4) As Byte

Dim Index As Byte

Dim Seco As Byte , Mine As Byte , Hour As Byte

Dim Count As Byte , T As Byte , C As Byte
Dim Disp As String * 4
Dim W(4) As String * 1
Dim Pak(4) As String * 2
Dim T1 As Byte , Byte0 As Byte , Byte1 As Byte
Dim T2 As Byte
Dim Viv As Bit

Config 1wire = Portd.2
'Seco = 0
'Seco = Makebcd(seco) : Mine = Makebcd(43) : Hour = Makebcd(20)
'I2cstart
'I2cwbyte &HA2
'I2cwbyte &H03
'I2cwbyte Seco
'I2cwbyte Mine
'I2cwbyte Hour
'I2cstop



'1:
Do
I2cstart                                                    'Чтение времени
I2cwbyte &HA2
I2cwbyte &H02
I2cstart
I2cwbyte &HA3
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Nack
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
If Count < Seco Then : Incr C                               'Каждую секунду увеличиваем значение флага С

If C = 1 Then                                               'если с = 1 то -
1wreset                                                     'Запрос на преобразование температуры
   1wwrite &HCC
   1wwrite &H44
End If

If C = 2 Then                                               'если с = 2 то -
1wreset                                                     'Чтение температурры
   1wwrite &HCC
   1wwrite &HBE
   Byte0 = 1wread()
   Byte1 = 1wread()
   T1 = Byte0 / 16
   T2 = Byte1 * 16
   T1 = T1 + T2
End If

If C = 5 Then : Viv = 1 : End If                            'флаг для вывода температурры(1 сек)
If C = 6 Then : Viv = 0 : C = 0 : End If                    'сброс флага вывода температурры
End If

Count = Seco
If Viv = 0 Then                                             'Формирование строки для отображение часов
Pak(1) = Str(hour)                                          'переводим байтовую переменную в строковую
Pak(1) = Format(pak(1) , "00")                              'форматируем строковую переменную до вида - "НН"
Pak(2) = Str(mine)                                          'переводим байтовую переменную в строковую
Pak(2) = Format(pak(2) , "00")                              'форматируем строковую переменную до вида - "ММ"
Disp = Pak(1) + Pak(2)                                      'Составляем строковую переменную для вывода - "ННММ"
Else                                                        'Формирование строки для отображение температурры
Pak(1) = Str(t1)                                            'переводим байтовую переменную в строковую
'Pak(1) = Format(pak(1) , "00")
Disp = " " + Pak(1) + "^"                                   'форматируем строковую переменную до вида - " ТT^".(^-знак градуссы С)
End If

For Index = 1 To 4                                          'Разбор строки на разряды ы вавод на дисплей
W(index) = Mid(disp , Index , 1)
N(index) = Val(w(index))
If W(index) = " " Then : N(index) = 10 : End If
If W(index) = "^" Then : N(index) = 11 : End If
Next Index
Set Portd.6 : Portb = Lookup(n(1) , P) : Waitms 1 : Reset Portd.6
Set Portd.5 : Portb = Lookup(n(2) , P) : Waitms 1 : Reset Portd.5
Set Portd.4 : Portb = Lookup(n(3) , P) : Waitms 1 : Reset Portd.4
Set Portd.3 : Portb = Lookup(n(4) , P) : Waitms 1 : Reset Portd.3
Loop
P:
Data &B11010111 , &B10000100 , &B11001011 , &B11001110 , &H9C , &H5E , &H5F , &HC4 , &HDF , &HDE , &H00 , &HD8


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 04, 2017 13:13:32 
Родился

Зарегистрирован: Вт янв 18, 2011 00:00:18
Сообщений: 13
Рейтинг сообщения: 0
все правильно .если работает от мк. а у меня через 74hc595 вот в чём проблема.

Добавлено after 57 minutes 40 seconds:
вторая версия прошивки.в ней нет значения установки при нажатия на кнопку.

https://www.youtube.com/watch?v=NVF4AUaZjsA


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 12, 2017 19:51:24 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
Сделал небольшой эксперимент. Помигал светодиодом.
Понадобилось узнать разницу в частоте мигания при разных подходах к делу.
Использовал BascomAVR и AVR Studio7.
Все остальное на скринах.
Изображение Изображение
Изображение Изображение

Странно что toggle в баскоме отрабатывает медленнее чем set reset.
Примечательно что выходной HEX баскома = 192 байта, а студии - 142 байта.


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

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

vanyap1 писал(а):
Странно что toggle в баскоме отрабатывает медленнее чем set reset.


Если посмотреть на дизасм, то становится понятно, почему так происходит:

Изображение

А для инверсии бита в Си, можно сделать так:

Код:
PORTB ^= (1 << 5);

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 13, 2017 08:21:47 
Электрический кот

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Пт июл 30, 2010 11:49:03
Сообщений: 1048
Откуда: Украина
Рейтинг сообщения: 0
Дизасм с кода баскома и студии должен быть одинаковым при простом Set, Reset bit. Кажется, но сейчас посмотрю.
Но видно что код баскома делает мигание это с частотой 2,4 МГц, а студия 2,66МГц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср фев 01, 2017 18:09:30 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
здрассьте, уважаемые. решил вот открыть для себя чудный мир микроконтроллеров и сходу заимел прикладную задачу, с которой и прошу помощи. итак, задача - линейка из 9 (лучше 11) светодиодов, поочередно вспыхивающих и плавно гаснущих. т.е. форма сигнала по сути - убывающая пила. из гугля я понял, что надо лудить ШИМ, но аппаратный ШИМ весь на таймерах, а где их взять такую палестину? не лучше ли будет использовать программный ШИМ, благо кроме этой задачи МК больше ничего делать не будет (ну почти. там еще пара фенечек). так как я твердо решил стоять на бейсике, то на нем и стою, но вот примеров программного ШИМа на нем не нашел. не подкинете хоть на 1-2 канала, а дальше я может и сам справлюсь?


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

Карма: 39
Рейтинг сообщений: 597
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4540
Откуда: Омск
Рейтинг сообщения: 0
Вот тут. Если что не понятно - спрашивайте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 14:17:55 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
vem566 спасибо, вечерком обкатаю в симулякре

Добавлено after 7 hours 22 minutes 12 seconds:
долго смотрел в код, пока он не начал смотреть в меня. но вопросы остались:
Цитата:
Config Portd.2 = Output : Led Alias Portd.2
Config Timer0 = Timer , Prescale = 1 : On Timer0 Pulse : Enable Timer0 : Enable Interrupts
Dim Z As Byte , Y As Integer

Do
Y = 10
Loop
End

Pulse:
Incr Z
If Z >= Y Then : Reset Led : Z = 0
Else : Set Led : End If
Return

што должен делать в данном случае цикл Do\Loop и где в теле программы вызов подпрограммы Pulse?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 14:23:15 
Мучитель микросхем

Карма: 7
Рейтинг сообщений: 44
Зарегистрирован: Ср июн 21, 2006 08:24:32
Сообщений: 465
Откуда: Лисичанск
Рейтинг сообщения: 0
IDok писал(а):
што должен делать в данном случае цикл Do\Loop и где в теле программы вызов подпрограммы Pulse?



В Do\Loop вы должны менять значение яркости переменной Y.
Pulse срабатывает по таймеру 0 - On Timer0 Pulse


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 16:30:32 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
Radan писал(а):

В Do\Loop вы должны менять значение яркости переменной Y.
Pulse срабатывает по таймеру 0 - On Timer0 Pulse

тысяча извинений, я сварщик пока не настоящий, но я там вижу бесконечный пустой цикл без надежды на выход и до подпрограммы дело не доходит :(
да и симулятор Баскома тоже по циклу крутится и не хочет выходить


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 16:47:10 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 810
Зарегистрирован: Ср апр 06, 2011 09:58:13
Сообщений: 13253
Откуда: Кузбасс
Рейтинг сообщения: 0
Цитата:
симулятор Баскома тоже по циклу крутится и не хочет выходить


А это в Proteus'e смотреть надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 17:25:06 
Мучитель микросхем

Карма: 7
Рейтинг сообщений: 44
Зарегистрирован: Ср июн 21, 2006 08:24:32
Сообщений: 465
Откуда: Лисичанск
Рейтинг сообщения: 0
IDok писал(а):
тысяча извинений, я сварщик пока не настоящий


Здесь рабочий девайс с ШИМом - http://bascom.at.ua/publ/1-1-0-9


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 18:02:04 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
Цитата:
А это в Proteus'e смотреть надо.

шайтанская кегля! работает! О_О
Цитата:
Здесь рабочий девайс с ШИМом

барин, я там половины слов не понимаю! :cry: но все равно спасибо, буду на мелкой проге отрабатывать. ну и риторический вопрос - два эффекта одновременно (на разных выходах, ессно) я ж не запущу, да? пошаговость, как она есть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт фев 02, 2017 18:19:12 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 597
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4540
Откуда: Омск
Рейтинг сообщения: 0
IDok писал(а):
два эффекта одновременно (на разных выходах, ессно) я ж не запущу, да?

Почему? В приведенном примере 8 работает. Если, конечно, МК будет чем то еще занят, то эта самая "занятость" может тормозить, но в целом все работает.
Если частота МК 8 МГц, таймер срабатывает по переполнению(можно сократить время срабатывания), то есть в 256 раз медленнее. Получается 31250 Гц. Дискретность ШИМа то же 256. Частота мигания диодов 122 Герца, что глазом не заметно.
Ну и можно дальше развлекаться. Частоту поднять до 16-20 МГц, таймер заставить срабатывать по совпадению, дискретность ШИМа уменьшить до 64 градаций яркости. Этим можно еще удвоить каналы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 03, 2017 04:27:52 
Друг Кота
Аватар пользователя

Карма: 64
Рейтинг сообщений: 1099
Зарегистрирован: Ср ноя 17, 2010 23:10:55
Сообщений: 5837
Откуда: Ижевск LO66NU
Рейтинг сообщения: 0
Привет! Намедни была нужда поиграться с вводом/выводом, так в шпорах нета обнаружил нестыковку -
одне пишут:
Цитата:
К примеру нам надо сконфигурировать порт B таким образом


CONFIG PORTB = OUTPUT
CONFIG PORTB.3 = INPUT
CONFIG PORTB.4 = INPUT
CONFIG PORTB.5 = INPUT
То есть – 3,4 и 5 выводы порта настроены на вход, а остальные на выход. С помощью DDR то же самое можно сделать одной строчкой… вот так…

DDRB=&B11100011

другие:
Цитата:
Можно также устанавливать направление соответствующих линий порта с помощью установки регистра DDRB. Для примера инструкция:

DDRB = &B00001111

повлечет запись числа 15 в регистр направления порта B, и 4 старших бита (PORTB.7 до PORTB.4) будут выходами, а 4 младшие (PORTB.3 до PORTB.0) входами.

или вовсе:
Цитата:
это все можно настроить через специальный регистр DDR, настройка займет всего одну строчку кода:

DDRB = 11101011 '2 и 4 ножки порта B сконфигурированы на вход, остальные - на выход

Вопрос - какой из вариантов правильный? :dont_know: :))) :)))

_________________
В начале жизнь мучает вопросами, в конце - ответами...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 03, 2017 07:09:24 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 597
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4540
Откуда: Омск
Рейтинг сообщения: 0
Работать это будет одинаково, так что как хочется, так и пишите.


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

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


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

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


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

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


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