Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт ноя 04, 2016 14:08:34
ничего себе-вот спасибо!то что надо!max50 писал(а):Тут посмотрите.Novice user писал(а):необходимо подключить две RDA5807 к одной атмега8
Здесь можно немножко помяукать :)
https://radiokot.ru/forum/
ничего себе-вот спасибо!то что надо!max50 писал(а):Тут посмотрите.Novice user писал(а):необходимо подключить две RDA5807 к одной атмега8
Код: Выделить всё
' 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
' Примечание:
Код: Выделить всё
$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Нужна версия 2.0.7.9.KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Толи Я дурак, толи лыжи не едут. Гугл выдает только 2.0.7.8.max50 писал(а):Нужна версия 2.0.7.9.KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.max50 писал(а):Не сочтите за наглость, можете ссылку дать на 2.0.7.9 ?
Есть описание библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.KOTик писал(а):А ведь релиз версии 2.0.7.8 как раз приходится на 2015г., полагал что с версией Rainbow1.2 будет работать
Не получилось запустить. Просит регистрацию продукта на сайте.max50 писал(а): Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.
и у меняmax50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
В этом вся и фишка.KOTик писал(а):Просит регистрацию продукта на сайте.
Во вложении описание первой версии библиотеки.KOTик писал(а):Какие варианты еще есть?
Комменты на немецком , да и сам код мне ничего не говорит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 Sub30 октября форум "пал"(о чем написано на любой странице форума), поэтому не получается перейти по ссылке(такой не существует), но автор библиотеки сделал новую страницу помощи.KOTик писал(а):и у меняmax50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.![]()
![]()
В двух шагах от поделки, если бы не такая трабла.
Какие варианты еще есть?
То что надо. Все описание имеется!max50 писал(а):но автор библиотеки сделал новую страницу помощи.
Код: Выделить всё
$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 5KOTик писал(а):Странно. А у меня с теми же ошибками.![]()
![]()
![]()
Можете hex сюда выложить, залью в ардуино для проверки?
ХЗ. У меня 2.0.7.7KOTик писал(а):P.S. Может сборка барсика тоже имеет значение?
Не работаетmax50 писал(а):
Код: Выделить всё
$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Опять не компилируется. Все те же ошибки выдает.max50 писал(а):Позже в железе попробую.
Попробовал - работает: