Мяу, уважаемые меховые животы! Стоит очень простая задача, но, для меня, как только начавшего ловить мышей в Баскоме, она стала камнем преткновения. Помогитеееее. Итак черпаем вдохновение из первоисточника 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 и лечил я принудительным выставлением битов в начале программы:
'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" - то же! Файлы закинул в папку LIB. Версия барсика 2.0.5.0 и 2.0.7.
Мужики, подскажите в чем трабла? Может есть у кого рабочий кусок кода для разбора полетов. Буду признателен
Толи Я дурак, толи лыжи не едут. Гугл выдает только 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 будет работать
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
_________________ Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
библиотеки для версии 2.0.7.7, но у меня не получается зайти на сайт.
и у меня В двух шагах от поделки, если бы не такая трабла.
Какие варианты еще есть?
30 октября форум "пал"(о чем написано на любой странице форума), поэтому не получается перейти по ссылке(такой не существует), но автор библиотеки сделал новую страницу помощи.
_________________ Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
То что надо. Все описание имеется! Все возможные варианты испробовал. Ошибка вылезает. Когда кликаю по ошибке, открывается файл rainbow.lib, а чем с ним делать не знаю
Вложение:
Комментарий к файлу: ошибки errors.JPG [41.2 KiB]
Скачиваний: 603
Привожу исходник + коменты на иглише, чтобы шрифты тут верно отображались
'# 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
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
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения