Например TDA7294

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

Текущее время: Сб ноя 22, 2025 16:03:43

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6056 ]     ... , , , 261, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб ноя 19, 2016 17:46:19 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 44
Зарегистрирован: Ср дек 10, 2008 21:24:28
Сообщений: 497
Откуда: Алтайский край, Барнаул
Рейтинг сообщения: 0
У меня кварц 16 МГц.


Вложения:
noname3.hex [2.78 KiB]
Скачиваний: 277

_________________
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 20, 2016 09:58:49 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 267
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Сообщений: 2042
Откуда: Москва
Рейтинг сообщения: 0
Кусок на ассемблере. Спер у кого-то и немного подправил. Значение регистра osccal подобрал, чтобы частота была около 12.5 МГц. (внутренний RC генератор)
СпойлерSend:
Disable Interrupts

push r17
push r16
push r0
' leds - количество кристаллов. в каждом ws2812 3 кристалла.
Loadadr Leds , X 'адрес переменной bytemax загружаем в регистровую пару x (R26,R27)
ld r17,x 'в R17 загружаем x (адрес bytemax)
Loadadr Rgb1(1) , X 'адрес начала массива rgb1 загружаем в регистровую пару x (R26,R27)
'массив rgb1 должен быть не короче константы leds. в этом массиве цвета для каждого диода
Nextbyte:
ld r0,x+ 'В r0 загружается байт по адресу из регистра x, а x инкрементируется
ldi r16,8
Nextbit:
'
Sbi $1b , 0 'адрес порта вывода
lsl r0
brcs Bit1
Bit0:
cbi $1b , 0
Bit1:
Nop
dec r16
cbi $1b , 0
brne Nextbit

dec r17
cpi r17,0
brne Nextbyte

pop r0
pop r16
pop r17

Waitus 5
Enable Interrupts
Return


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 21, 2016 00:48:35 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн июн 07, 2010 16:16:57
Сообщений: 148
Рейтинг сообщения: 0
Урааа! :))
Подружил барсик (2.0.7.5) с библиотекой rainbow.
Ваш исходник работает!
Спасибо!

Иду дальше...
Ознакомился с описанием, что-то получается, а что-то нет.
Например, Call Settablecolor(0 , Х) работает с массивом и, меняя Х могу выбрать палитру. И очень странно, что меняется только 1 светик. А у меня неопиксель из 12ти светиков по кругу.
Чтобы включить все светики в ленте, надо воспользоваться Fill_Stripe() или Fill_color().
т.е. Call Fill_stripe(color(Х)) - здесь Х может принять значения: 1(светит белым); 2(светит желтым) и 3(светит красным). Почему только 3 и откуда такие цвета - не пойму. И почему цвет заливки не берется с массива?

Вкратце по умолчанию все светики горят белым. Каждое нажатие меняет цвет (берется из палитры). Привожу исходник
Спойлер
Код:
$regfile = "m328pdef.dat"
 $Crystal = 16000000
 $hwstack = 40
 $swstack = 16
 $framesize = 32

 Config Debounce = 75                                        'время задержки в мс
 '_____


 Config Pind.6 = Input
 Button Alias Pind.6                                        'Присвоение КНОПКА для PIND.6


 '----[IMPLEMENT RAINBOW]----------

$lib "Rainbow1.21.lib"
$external WS2812b
 Declare Sub Select_rainbow(byval Channel As Byte)
 Declare Sub Setcolor(byval Lednr As Word , Color() As Byte)
 Declare Sub Send()
 Declare Sub Shift_Left(byval Left_index As Word , Byval Width As Word) : $external USE_Shift_Left
 Declare Sub Shift_right(byval Left_index As Word , Byval Width As Word) : $external Use_shift_right
 Declare Sub Settablecolor(byval Lednr As Word , Byval Index As Byte) : $external Use_settablecolor
 Declare Sub Fill_colors(color() As Byte) : $external Use_fill
 Declare Sub Fill_stripe(color() As Byte) : $external Use_fill_stripe



 '#Rainbow0
 Const Rainbow0_len = 12
 Const Rainbow0_port = Portc
 Const Rainbow0_pin = Pc3


 'Gloabal Color-variables
 Dim Color(3) as Byte
 R Alias Color(_base) : G Alias Color(_base + 1) : B Alias Color(_base + 2)

 Dim Click As Byte


 '_____
 '----[MAIN]----------

 Call Select_rainbow(0)                                     'select Rainbow
 R = 255 : G = 255 : B = 255                                'define a color
 Call Send()

Do
Debounce Button , 0 , Changecolor , Sub                     'ПЕРЕХОД К МЕТКЕ ДЛЯ ВЫБОРА ЦВЕТА


 Loop

 '/// ---> МЕНЯЕМ ЦВЕТА ПО НАЖАТИЮ НА КНОПКУ
Changecolor:
Waitms 50

If Button = 0 Then
Incr Click
End If

If Click => 4 Then
Click = 1
End If


If Click = 1 Then
 Call Settablecolor(0 , 0)                                  'КРАСНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
 'Call Fill_stripe(color(1))                                'СВЕТИТ БЕЛЫМ - КАКОЙ-ТО ПРОИЗВОЛЬНЫЙ ЦВЕТ. ОТКУДА ОН?
 Call Send()
End If


If Click = 2 Then
 Call Settablecolor(0 , 1)                                  'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
 'Call Fill_stripe(color(2))                                 'СВЕТИТ ЖЕЛТЫМ - КАКОЙ-ТО ПРОИЗВОЛЬНЫЙ ЦВЕТ. ОТКУДА ОН?
 Call Send()
End If

If Click = 3 Then
 Call Settablecolor(0 , 2)                                  'СИНИЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
 'Call Fill_stripe(color(3))                                 'СВЕТИТ КРАСНЫМ - КАКОЙ-ТО ПРОИЗВОЛЬНЫЙ ЦВЕТ. ОТКУДА ОН?
 Call Send()
End If

Bitwait Button , Set
Waitms 50
Return



  End



Rainbow_colors:
      '       R  ,  G  ,  B                    index
      Data 255 , 0 , 0                                      'Red         0
      Data 0 , 255 , 0                                      'Green       1
      Data 0 , 0 , 255                                      'Blue        2
      Data 255 , 160 , 0                                    'Orange      3
      Data 255 , 255 , 00                                   'Yellow      4
      Data 190 , 0 , 255                                    'HotPink     5
      Data 255 , 255 , 255                                  'HotPink     6


Microtech, asm для меня сложно. Я в нем ничего не понимаю. Барсик как-то привычней :)
В любом случае, спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 21, 2016 17:30:36 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 44
Зарегистрирован: Ср дек 10, 2008 21:24:28
Сообщений: 497
Откуда: Алтайский край, Барнаул
Рейтинг сообщения: 0
KOTик писал(а):
И очень странно, что меняется только 1 светик. А у меня неопиксель из 12ти светиков по кругу.

Цитата:
Sub Settablecolor(byval Lednr As Word , Byval Index As Byte)
LedNr.....индекс светодиода.
Index.....индекс цвета.

То есть менять нужно не только Index, но и LedNr.

_________________
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 21, 2016 18:51:57 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн июн 07, 2010 16:16:57
Сообщений: 148
Рейтинг сообщения: 0
Call Settablecolor(0 , 1) 'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
Здесь 0 - это первый светодиод (LedNumber). Если напишу 11, то загорится 12ый, если напишу 4, то загорится 5ый. Но никак ни все :(

Писать так:
Код:
Call Settablecolor(0 , 1)                                  'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
Call Settablecolor(1 , 1)                                  'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
Call Settablecolor(2 , 1)                                  'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ
...
Call Settablecolor(11 , 1)                                  'ЗЕЛЕНЫЙ СОГЛАСНО ПАЛИТРЕ ЦВЕТОВ

Это не вариант. Ведь есть Call Fill_stripe(color(3)) и Call Fill_color(color(3)) , а они почему то не работают


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

Карма: 7
Рейтинг сообщений: 44
Зарегистрирован: Ср июн 21, 2006 08:24:32
Сообщений: 465
Откуда: Лисичанск
Рейтинг сообщения: 0
KOTик писал(а):
Урааа! :))
Подружил барсик (2.0.7.5) с библиотекой rainbow.


Расскажите пожалуйста, как вы их подружили.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 23, 2016 15:29:16 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн июн 07, 2010 16:16:57
Сообщений: 148
Рейтинг сообщения: 0
Radan писал(а):
KOTик писал(а):
Урааа! :))
Подружил барсик (2.0.7.5) с библиотекой rainbow.


Расскажите пожалуйста, как вы их подружили.

Ооо... И не спрашивайте.
Пробовал одну версию, за другой. Гуглил тут,там.
У max50 с версией 2.0.7.7 вроде работает. Я эту версию не нашел. Закачал 2.0.7.5 и то сразу не заработало.
Пришлось удалить барсик, почистить реестр Винды и только потом вроде заработало.

В идеале, конечно, 2.0.7.9. Но как подсказал max50, он пока только ввиде обновления. Установочного дистрибутива нет.
А обновление доступно только программе с регистрационным ключом.
Синтаксисы для барсика 2.0.7.9 и ранних версий разные. Для версии 2.0.7.9 он настраивается всего одной строкой и проще управляется. В ранних же версиях, приходится объявлять Sub и вызывать их (исходник выше).
Вот команды для 2.0.7.9 http://avrhelp.mcselec.com/index.html?config_rainbow.htm
Так что, буду ждать обновления, а пока разбираю в 2.0.7.5 и ничего не получается. Мой вопрос выше остался открытым :(

Странно, не могу сюда прикрепить файлы библиотеки :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 24, 2016 19:02:13 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Пт дек 07, 2007 11:17:40
Сообщений: 134
Откуда: г. Екатеринбург
Рейтинг сообщения: 0
У меня есть две одинаковые виртуальные машины с настроенной системой сборки при помощи компилятора bascomp 2.0.7.8. Правда я делаю сборку без IDE, при помощи Makefile.
Одна машина VMware 12, вторая VirtualBox. На обеих winxp и по для работы с avr мк.
Если хотите, могу дать и показать как пользоваться. В систему сборки включена моя утилита objdump, которая позволяет получать листинги с расшифровкой кода bascom в виде ассемблерных команд. По листингам можно понять что делают библиотечные функции, если разбираться в ассемблере. Такие же листинги можно видеть при отладке кода в Proteus.

_________________
Россия навсегда!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 27, 2016 01:23:30 
Родился

Карма: -1
Рейтинг сообщений: -1
Зарегистрирован: Пт ноя 21, 2014 00:41:47
Сообщений: 17
Откуда: г. Донецк
Рейтинг сообщения: 0
Здравствуйте. Может кто подскажет в таком вопросе.
Нужно подключить дисплей с 8 бит данными к ардуино уно.
Обычно под это дело выделяют отдельный порт так
Config Portd = Output
и далее переназначение под данные
Data_displey Alias Portd
Но на UNO 6 ног дисплея сидят на Portd.2-Portd.6 и две ножки Portb.0 и Portb.1

Может кто знает как правильно это всё конфигурировать в баскоме чтоб было равноценно Config Portd = Output ?
Под сигналы сброса дисплея, записи и т.д. конфигурируется по ножке и с этим проблем нет. Но как можно шину дата сделать когда на разных портах она висит?


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

Карма: 40
Рейтинг сообщений: 608
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4695
Откуда: Омск
Рейтинг сообщения: 0
А что мешает у UNO переназначить порты? Да и не припомню, что бы они были вообще назначены. Подписаны - да, а конфигурация произвольная.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 27, 2016 10:44:58 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 456
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Сообщений: 2207
Откуда: Крымск
Рейтинг сообщения: 0
Попробуйте напрямую указать "нога дисплея" = "порт контроллера"
по типу:
Config Lcdpin = Pin , Rs = Portd.5 , E = Portd.6 , Db4 = Portd.7 , Db5 = Portb.0 , Db6 = Portb.1 , Db7 = Portb.2


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 27, 2016 12:44:56 
Родился

Карма: -1
Рейтинг сообщений: -1
Зарегистрирован: Пт ноя 21, 2014 00:41:47
Сообщений: 17
Откуда: г. Донецк
Рейтинг сообщения: 0
vem566 писал(а):
А что мешает у UNO переназначить порты?

Вопрос в том как это сделать на баскоме. Назначить 8 ножек с разных портов под данные.
Проблема состоит в том что на UNO 8 ножек дисплея на которых выставляются данные попадают 2 ножки PORTB и 6 ножек PORTD.
Плату я конечно могу нарисовать и спаять как надо, но ардуиновские примеры работают с платой UNO. Попробую там посмотреть как они это делают.
Adagumer писал(а):
Попробуйте напрямую указать "нога дисплея" = "порт контроллера"

Это конфигурация для двустрочника под стандартную библиотеку баскома. А у меня графический на ILI9341.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 27, 2016 14:54:27 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4591
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
carnaval писал(а):
Вопрос в том как это сделать на баскоме.
А что, в баскоме нельзя обращаться к отдельным битам порта ? :shock:


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

Карма: 21
Рейтинг сообщений: 267
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Сообщений: 2042
Откуда: Москва
Рейтинг сообщения: 0
Так нелзя, чтоли?
A = 55 ' распихиваем байт данных по разным пинам

send_11:
Portc.7 = A.0
Portc.3 = A.1
Portb.2 = A.2
Portb.0 = A.3
Portd.1 = A.4
Portc.1 = A.5
Portc.2 = A.6
Portb.4 = A.7
return


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс ноя 27, 2016 15:08:09 
Родился

Карма: -1
Рейтинг сообщений: -1
Зарегистрирован: Пт ноя 21, 2014 00:41:47
Сообщений: 17
Откуда: г. Донецк
Рейтинг сообщения: 0
Обращаться можно. Как сделать я знаю. Это вообще не проблема. Но в программе есть байт которым устанавливается нужное состояние порта целиком. А тут нужно без бубна устанавливать согласно этому байту состояние определённых 6 портов D и два порта В.
В принципе я знаю как разложить байт на биты и выставить их в нужных портах, но это действие скажется на быстродействии вывода на дисплей. Буду думать дальше как назначить это напрямую, без дополнительной подпрограммы разделения байта на биты.

Добавлено after 55 seconds:
Microtech писал(а):
Так нелзя, чтоли?
Так можно. Но не проще ли один раз сделать конфигурацию для прямого обращения к портам?


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

Карма: 21
Рейтинг сообщений: 267
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Сообщений: 2042
Откуда: Москва
Рейтинг сообщения: 0
Цитата:
Так можно. Но не проще ли один раз сделать конфигурацию для прямого обращения к портам?

А что я предложил две конфигурации? :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вт дек 06, 2016 19:10:31 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27
Сообщений: 398
Откуда: Беларусь.Минская обл.
Рейтинг сообщения: 0
добрый вечер. Товраищи, примитивная задача-измерить частоту. Сделал на таймере, считывание показания по прерыванию ИНТ0. Но как то в протеусе частота прыгает, а бывает вообще выскакивает не та которая должна быть... Включил отладку, глянул как меняются переменные, так вот при каждом цикле они изменяются немного. Т.е. плавают в небольших пределах. И частота на экранчике скачет.А изредка то 0 выскочит то вообще левая частота какая то Как это победить? или я делаю что не так? пробовал измерять по регистру захвата, так вообще тогда экран зависает (от нокиа 3310), а когда выключаю прерывания на момент обращения к экрану, то вообще сильно прыгает частота. В общем может поможете "причесать" примитивную программу.
Все файлы прилагаю.


Вложения:
автопдсос.rar [44.28 KiB]
Скачиваний: 188
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср дек 07, 2016 13:23:58 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27
Сообщений: 398
Откуда: Беларусь.Минская обл.
Рейтинг сообщения: 0
4 раза скачано. А ответа нет :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Ср дек 07, 2016 15:11:53 
Друг Кота
Аватар пользователя

Карма: 40
Рейтинг сообщений: 608
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4695
Откуда: Омск
Рейтинг сообщения: 0
Несколько раз пытался в протеусе смоделировать частотомер, ни разу ни при каких алгоритмах эмулятор корректно не работал. Все было тоже самое, что и у Вас. Закончилось отладкой в железе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 09, 2016 20:30:17 
Встал на лапы

Зарегистрирован: Вс мар 27, 2011 07:48:48
Сообщений: 127
Откуда: г. Екатеринбург
Рейтинг сообщения: 0
Приветствую всех, кто еще не спит.
Детский вопрос. Нужно задействовать Timer1, но чтобы он считал не с 0 до 65535, а с 5000 до 65535. Если я до

начала цикла Do-Loop укажу таймеру начальное значение Timer1=5000, т.е. примерно так:

Config Nimer1=Timer, Prescale=64
Timer1=5000
...
...
Do
Start Timer1
...
...
...
Stop Timer1
Loop

Будет ли при каждом круге цикла Do-Loop таймер стартовать со значения 5000, или надо каждый раз указывать ему

начальное значение?


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

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


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

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


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

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


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