BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение Novice user »

max50 писал(а):
Novice user писал(а):необходимо подключить две RDA5807 к одной атмега8
Тут посмотрите.
ничего себе-вот спасибо!то что надо!
Реклама
haron29
Родился
Сообщения: 8
Зарегистрирован: Вт авг 03, 2010 12:28:42

Re: BASCOM AVR в вопросах и ответах

Сообщение haron29 »

Мяу, уважаемые меховые животы!
Стоит очень простая задача, но, для меня, как только начавшего ловить мышей в Баскоме, она стала камнем преткновения. Помогитеееее.
Итак черпаем вдохновение из первоисточника 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 Нужно это все доходчиво рассказать ребенкам в кружке, а как говорится Факир был пьян...Да и самому нужно разобраться. Это уже дело принципа :oops:
Реклама
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение uni »

Нужно посмотреть фактическое состояние регистров управления 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
    '  Примечание:
Россия навсегда!
Аватара пользователя
Microtech
Поставщик валерьянки для Кота
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение Microtech »

Можно через регистры, можно и самим баскомом:

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

Мррр всем котам :)
Появилась мысль сделать лампу настроения на 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" - то же! :kill: Файлы закинул в папку LIB. Версия барсика 2.0.5.0 и 2.0.7.

Мужики, подскажите в чем трабла?
Может есть у кого рабочий кусок кода для разбора полетов.
Буду признателен :beer:
Реклама
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Нужна версия 2.0.7.9.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Реклама
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а):
KOTик писал(а):Версия барсика 2.0.5.0 и 2.0.7.
Нужна версия 2.0.7.9.
Толи Я дурак, толи лыжи не едут. Гугл выдает только 2.0.7.8.
Не сочтите за наглость, можете ссылку дать на 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 будет работать :cry:
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

max50 писал(а):Не сочтите за наглость, можете ссылку дать на 2.0.7.9 ?
Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.
KOTик писал(а):А ведь релиз версии 2.0.7.8 как раз приходится на 2015г., полагал что с версией Rainbow1.2 будет работать
Есть описание библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а): Для 2.0.7.9 нет инсталлятора. Она распространяется в виде обновления и ее нужно качать через UpdateWiz.
Не получилось запустить. Просит регистрацию продукта на сайте.
max50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
и у меня :kill: :kill:
В двух шагах от поделки, если бы не такая трабла.

Какие варианты еще есть?
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

KOTик писал(а):Просит регистрацию продукта на сайте.
В этом вся и фишка.
KOTик писал(а):Какие варианты еще есть?
Во вложении описание первой версии библиотеки.
Вложения
Rainbow LIB.pdf
(59.98 КБ) 442 скачивания
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а): Во вложении описание первой версии библиотеки.
Комменты на немецком , да и сам код мне ничего не говорит :(
Еду домой, буду ковыряться
Спасибо
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение 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
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

KOTик писал(а):
max50 писал(а): библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
и у меня :kill: :kill:
В двух шагах от поделки, если бы не такая трабла.

Какие варианты еще есть?
30 октября форум "пал"(о чем написано на любой странице форума), поэтому не получается перейти по ссылке(такой не существует), но автор библиотеки сделал новую страницу помощи.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а):но автор библиотеки сделал новую страницу помощи.
То что надо. Все описание имеется! :)
Все возможные варианты испробовал. Ошибка вылезает. Когда кликаю по ошибке, открывается файл rainbow.lib, а чем с ним делать не знаю :shock:
errors.JPG
ошибки
(41.2 КБ) 609 скачиваний
Привожу исходник + коменты на иглише, чтобы шрифты тут верно отображались

Код: Выделить всё

$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

Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

В железе не проверял, но ошибок нет:

Код: Выделить всё

'чтобы комменты были на русском, нужно копировать в русской раскладке
$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
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

Странно. А у меня с теми же ошибками. :kill: :kill: :kill:
Можете hex сюда выложить, залью в ардуино для проверки?

P.S. Может сборка барсика тоже имеет значение?
bascom.JPG
моя версия барсика
(29.08 КБ) 544 скачивания
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

KOTик писал(а):Странно. А у меня с теми же ошибками. :kill: :kill: :kill:
Можете hex сюда выложить, залью в ардуино для проверки?
noname2.hex
(1.95 КБ) 624 скачивания
KOTик писал(а):P.S. Может сборка барсика тоже имеет значение?
ХЗ. У меня 2.0.7.7
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а):
noname2.hex
Не работает :(
А я уже 2.0.7.7 качать собирался.
Мдяя.. Много крови выпьет эта ws2812 :kill:
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение 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
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

max50 писал(а):Позже в железе попробую.

Попробовал - работает:
Опять не компилируется. Все те же ошибки выдает.
Можно хекс файл?

Пойду качать 2.0.7.7
Ответить

Вернуться в «AVR»