ничего себе-вот спасибо!то что надо!max50 писал(а):Тут посмотрите.Novice user писал(а):необходимо подключить две RDA5807 к одной атмега8
BASCOM AVR в вопросах и ответах
- Реклама
- Сообщения: 8
- Зарегистрирован: Вт авг 03, 2010 12:28:42
Мяу, уважаемые меховые животы!
Стоит очень простая задача, но, для меня, как только начавшего ловить мышей в Баскоме, она стала камнем преткновения. Помогитеееее.
Итак черпаем вдохновение из первоисточника http://avrhelp.mcselec.com/index.html?uart.htm
$regfile = "m32def.dat" 'Define your own
$crystal = 8000000
$baud = 19200
Do
Print "Hello World"
Waitms 25
Loop
End
Надо чтоб простейшая программа работала на Тини2313а. И вот тут у меня хвост застрял в мышеловке. Задача: научиться получать от МК сообщения по УАРТу.
Баском 2.0.7.8, Вынь ХР и 8.1, ком порт эмулируется УСБ донглом СН340 (луп тест проходит на ура). Кварц 4 мГц внешний. Делитель на 8 отключаю. По фузам вроде все правильно.
моя прожка
$Regfile="attiny2313a.dat"
$Crystal=4000000
$hwstack=32
$swstack=8
$framesize=16
$baud = 9600
Do
Print "hello world"
Waitms 50
Loop
End
в симуляторе на терминале все отображается. А в живую валит неопределенное постоянное сочетание букв с паузами. Все режимы по ком порту выставил как нужно. Самое интересное, что та же прога, но для Ардуины нано ведет себя как и нужно и пишет приветы миру.
Зачитал до дыр в мониторе все уроки по Баскому, нигде не нашел даже намека. Везде утверждается, что это самое простое в прграммировании на Баскоме.
Где копать? Подскажите, где искать лопату? И вообще это бага, фича или руки?
PS Нужно это все доходчиво рассказать ребенкам в кружке, а как говорится Факир был пьян...Да и самому нужно разобраться. Это уже дело принципа
Стоит очень простая задача, но, для меня, как только начавшего ловить мышей в Баскоме, она стала камнем преткновения. Помогитеееее.
Итак черпаем вдохновение из первоисточника http://avrhelp.mcselec.com/index.html?uart.htm
$regfile = "m32def.dat" 'Define your own
$crystal = 8000000
$baud = 19200
Do
Print "Hello World"
Waitms 25
Loop
End
Надо чтоб простейшая программа работала на Тини2313а. И вот тут у меня хвост застрял в мышеловке. Задача: научиться получать от МК сообщения по УАРТу.
Баском 2.0.7.8, Вынь ХР и 8.1, ком порт эмулируется УСБ донглом СН340 (луп тест проходит на ура). Кварц 4 мГц внешний. Делитель на 8 отключаю. По фузам вроде все правильно.
моя прожка
$Regfile="attiny2313a.dat"
$Crystal=4000000
$hwstack=32
$swstack=8
$framesize=16
$baud = 9600
Do
Print "hello world"
Waitms 50
Loop
End
в симуляторе на терминале все отображается. А в живую валит неопределенное постоянное сочетание букв с паузами. Все режимы по ком порту выставил как нужно. Самое интересное, что та же прога, но для Ардуины нано ведет себя как и нужно и пишет приветы миру.
Зачитал до дыр в мониторе все уроки по Баскому, нигде не нашел даже намека. Везде утверждается, что это самое простое в прграммировании на Баскоме.
Где копать? Подскажите, где искать лопату? И вообще это бага, фича или руки?
PS Нужно это все доходчиво рассказать ребенкам в кружке, а как говорится Факир был пьян...Да и самому нужно разобраться. Это уже дело принципа
Нужно посмотреть фактическое состояние регистров управления UART'а под отладчиком. Возможно не всё установлено правильно или недоустановлено. У меня было нечто похожее с ATtiny2313 и лечил я принудительным выставлением битов в начале программы:
Код: Выделить всё
' USART Control and Status Register C
' [ Регистр управления UCSRC ][ATtiny2313]
' 00000110 - Initial Value
UCSRC = &B00000110
' ||||||||
' |||||||+- 0, rw, UCPOL: - Clock Polarity
' ||||||+-- 1, rw, UCSZ0: -+ - Character Size
' |||||+--- 2, rw, UCSZ1: _|
' ||||+---- 3, rw, USBS: - Stop Bit Select
' |||+----- 4, rw, UPM0: -+ - Parity Mode
' ||+------ 5, rw, UPM1: _|
' |+------- 6, rw, UMSEL: - USART Mode Select
' +-------- 7, r: 0
' Примечание:
Россия навсегда!
Можно через регистры, можно и самим баскомом:
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Мррр всем котам
Появилась мысль сделать лампу настроения на ws2812. Скачал пример с оффсайта
Подключил библиотеку $lib "Rainbow.lib" - вышла куча ошибок: Unknown CONFIG Parameter [RAINBOW]
Нашел другую библиотеку $lib "Rainbow1.2.lib" - то же!
Файлы закинул в папку LIB. Версия барсика 2.0.5.0 и 2.0.7.
Мужики, подскажите в чем трабла?
Может есть у кого рабочий кусок кода для разбора полетов.
Буду признателен
Появилась мысль сделать лампу настроения на ws2812. Скачал пример с оффсайта
Спойлер
Код: Выделить всё
$regfile = "m328pdef.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config Rainbow = 1 , Rb0_len = 12 , Rb0_port = Portd , Rb0_pin = 2
' ^ connected to pin 2
' ^------------ connected to portD
' ^-------------------------- 12 leds on stripe
' ^------------------------------------- 1 channel
'Global Color-variables
Dim Color(3) As Byte
R Alias Color(_base) : G Alias Color(_base + 1) : B Alias Color(_base + 2)
'CONST
Const Numleds = 12
'----[MAIN]---------------------------------------------------------------------
Dim N As Byte
Rb_selectchannel 0 ' select first channel
R = 50 : G = 0 : B = 100 ' define a color
Rb_setcolor 0 , Color(1) ' update leds
Rb_send
Do
For N = 1 To Numleds -1
Rb_shiftright 0 , Numleds 'shift to the right all leds except the last one
Waitms 100
Rb_send
Next
For N = 1 To Numleds -1
Rb_shiftleft 0 , Numleds 'shift to the left all leds except the last one
Waitms 100
Rb_send
Next
Waitms 500 'wait a bit
LoopПодключил библиотеку $lib "Rainbow.lib" - вышла куча ошибок: Unknown CONFIG Parameter [RAINBOW]
Нашел другую библиотеку $lib "Rainbow1.2.lib" - то же!
Мужики, подскажите в чем трабла?
Может есть у кого рабочий кусок кода для разбора полетов.
Буду признателен
- Реклама
Нужна версия 2.0.7.9.KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Толи Я дурак, толи лыжи не едут. Гугл выдает только 2.0.7.8.max50 писал(а):Нужна версия 2.0.7.9.KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Не сочтите за наглость, можете ссылку дать на 2.0.7.9 ?
У меня 2 версии библиотек: Rainbow 1.2 [Date = 17.01.2015] и Rainbow 1.21 [Date = 23.01.2016].
Обновил свой барсик до 2.0.7.8, закинул в папку LIB файлики и опять ничего и куча ошибок.
А ведь релиз версии 2.0.7.8 как раз приходится на 2015г., полагал что с версией Rainbow1.2 будет работать
Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.max50 писал(а):Не сочтите за наглость, можете ссылку дать на 2.0.7.9 ?
Есть описание библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.KOTик писал(а):А ведь релиз версии 2.0.7.8 как раз приходится на 2015г., полагал что с версией Rainbow1.2 будет работать
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Не получилось запустить. Просит регистрацию продукта на сайте.max50 писал(а): Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.
и у меняmax50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
В двух шагах от поделки, если бы не такая трабла.
Какие варианты еще есть?
В этом вся и фишка.KOTик писал(а):Просит регистрацию продукта на сайте.
Во вложении описание первой версии библиотеки.KOTик писал(а):Какие варианты еще есть?
- Вложения
-
- Rainbow LIB.pdf
- (59.98 КБ) 443 скачивания
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Комменты на немецком , да и сам код мне ничего не говоритmax50 писал(а): Во вложении описание первой версии библиотеки.
Еду домой, буду ковыряться
Спасибо
Это хоть что-то.KOTик писал(а):Комменты на немецком
Есть еще на польском:KOTик писал(а):сам код мне ничего не говорит
Код: Выделить всё
$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 64
$swstack = 64
$framesize = 124
$baud = 38400
Declare Sub Send_frame_800(byval Number_of_ic As Byte)
Dim Led_buffer(255) As Byte
Dim Lch As Byte
Dim Lcl As Byte
Sdi Alias Portb.0
Config Portb.0 = Output
Dim R As Word
Dim G As Word
Dim B As Word
Dim I As Byte
Dim J As Byte
Dim Ledg As Byte
Dim Ledr As Byte
Dim Ledb As Byte
Dim Wheel As Word
Dim Wheel2 As Byte
Const Liczba_led = 14
Do
For J = 1 To 255
For I = 1 To Liczba_led
Wheel = I - 1
Wheel = Wheel * 255
Wheel = Wheel / Liczba_led
Wheel = Wheel + J
Wheel2 = Wheel
If Wheel2 >= 0 And Wheel2 <= 85 Then
R = Wheel2 * 3
G = Wheel2 * 3
G = 255 - G
B = 0
End If
If Wheel2 >= 86 And Wheel2 <= 170 Then
R = Wheel2 * 3
R = 255 - R
R = 255 + R
G = 0
B = Wheel2 * 3
B = B - 255
End If
If Wheel2 >= 171 And Wheel2 <= 255 Then
R = 0
G = Wheel2 * 3
G = G - 255
G = G - 255
B = Wheel2 * 3
B = 255 - B
B = B + 255
B = B + 255
End If
Ledb = I * 3
Ledr = Ledb - 1
Ledg = Ledr - 1
Led_buffer(ledg) = G
Led_buffer(ledr) = R
Led_buffer(ledb) = B
Next I
Call Send_frame_800(liczba_led)
Waitms 10
Next J
Loop
Sub Send_frame_800(byval Number_of_ic As Word)
Local Last_channel As Word
Last_channel = Number_of_ic * 3
Lch = High(last_channel)
Lcl = Low(last_channel)
Sdi = 0
'Waitms 1
Waitus 500
push r0
push r16
push r17
push r24
push r25
lds r25 , {lch}
lds r24 , {lcl}
Loadadr Led_buffer(1) , X
Channel_loop_800:
ld r0,x+
ldi r16,8
Bit_loop_800:
lsl r0
brcc BIT_0_800
Bit_1_800:
sbi PORTb,0
Nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi PORTb,0
rjmp Next_bit_800
Bit_0_800:
sbi PORTb,0
nop
nop
nop
nop
nop
cbi PORTb,0
nop
nop
nop
nop
nop
Next_bit_800:
dec r16
cpi r16,0
brne BIT_LOOP_800
sbiw R24,1
brne CHANNEL_LOOP_800
pop r25
pop r24
pop r17
pop r16
pop r0
End SubТого, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
30 октября форум "пал"(о чем написано на любой странице форума), поэтому не получается перейти по ссылке(такой не существует), но автор библиотеки сделал новую страницу помощи.KOTик писал(а):и у меняmax50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.![]()
![]()
В двух шагах от поделки, если бы не такая трабла.
Какие варианты еще есть?
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
То что надо. Все описание имеется!max50 писал(а):но автор библиотеки сделал новую страницу помощи.
Все возможные варианты испробовал. Ошибка вылезает. Когда кликаю по ошибке, открывается файл rainbow.lib, а чем с ним делать не знаю
Код: Выделить всё
$regfile = "m328pdef.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
$lib "Rainbow.lib"
$external Ws2812b
'# Rainbow0
Const Rainbow0_len = 12 'NEOPIXEL 12 LED RING
Const Rainbow0_port = Portd 'PORT D SETUP
Const Rainbow0_pin = Pd2 'OUT D2
Declare Sub Select_rainbow(byval Channel As Byte)
Declare Sub Set_color(byval Lednr As Word , Color() As Byte)
Declare Sub Settablecolor(byval Lednr As Word , Byvalindex As Byte) : $external Use_settablecolor
Declare Sub Send()
'---- [MAIN] ---------------------------------------------------------------------
Call Select_rainbow(0) 'select Rainbow
Do
Call Settablecolor(0 , 4) 'LED 1 YELLOW
Loop
End
Rainbow_Colors:
'R, G, B
Data &HFF , &H00 , &H00 'Red 0
Data &H00 , &HFF , &H00 'Green 1
Data &H00 , &H00 , &HFF 'Blue 2
Data &HFF , &HA5 , &H00 'Orange 3
Data &HFF , &HFF , &H00 'Yellow 4
Data &HFF , &H69 , &HB4 'HotPink 5
В железе не проверял, но ошибок нет:
Код: Выделить всё
'чтобы комменты были на русском, нужно копировать в русской раскладке
$regfile = "m328pdef.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
$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 Settablecolor(byval Lednr As Word , Byvalindex As Byte) : $external Use_settablecolor
'# Rainbow0
Const Rainbow0_len = 12 'NEOPIXEL 12 LED RING
Const Rainbow0_port = Portd 'PORTD SETUP
Const Rainbow0_pin = Pd2 'OUT D2
Dim Color(3) As Byte
R Alias Color(_base) : G Alias Color(_base + 1) : B Alias Color(_base + 2)
Call Select_Rainbow(0)
'---- [MAIN] ---------------------------------------------------------------------
Do
Call Settablecolor(0 , 4) 'LED 1 YELLOW
Loop
End
Rainbow_Colors:
'R, G ,B
Data &HFF , &H00 , &H00 'Red 0
Data &H00 , &HFF , &H00 'Green 1
Data &H00 , &H00 , &HFF 'Blue 2
Data &HFF , &HA5 , &H00 'Orange 3
Data &HFF , &HFF , &H00 'Yellow 4
Data &HFF , &H69 , &HB4 'HotPink 5Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Странно. А у меня с теми же ошибками.
Можете hex сюда выложить, залью в ардуино для проверки?
P.S. Может сборка барсика тоже имеет значение?
Можете hex сюда выложить, залью в ардуино для проверки?
P.S. Может сборка барсика тоже имеет значение?
KOTик писал(а):Странно. А у меня с теми же ошибками.![]()
![]()
![]()
Можете hex сюда выложить, залью в ардуино для проверки?
ХЗ. У меня 2.0.7.7KOTик писал(а):P.S. Может сборка барсика тоже имеет значение?
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Не работаетmax50 писал(а):
А я уже 2.0.7.7 качать собирался.
Мдяя.. Много крови выпьет эта ws2812
Позже в железе попробую.
Попробовал - работает:
Попробовал - работает:
Код: Выделить всё
$Regfile = "m328pdef.dat"
$Crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32
'__________________________________
'----[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
'#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)
'__________________________________
'----[MAIN]---------------------------------------------------------------------
Dim n as Byte
Call Select_Rainbow(0) 'select Rainbow
R = 255 : G = 255 : B = 255 'define a color
Call SetColor(0 , color())
Call Send()
Do
For n = 1 to 11
Call Shift_right(0 , 12)
Waitms 100
Call Send()
Next
For n = 1 to 11
Call Shift_left(0 , 12)
Waitms 100
Call Send()
Next
Loop
EndТого, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Сообщения: 148
- Зарегистрирован: Пн июн 07, 2010 16:16:57
Опять не компилируется. Все те же ошибки выдает.max50 писал(а):Позже в железе попробую.
Попробовал - работает:
Можно хекс файл?
Пойду качать 2.0.7.7


