Вообще-то, вопрос сформулирован сбивчиво и неточно - возможно двоякое понимание того, что там на самом деле происходит. Надо ждать уточнений от domrustika.
Ищу библиотеку Rainbow.Lib для WS2812b. Есть ссылка http://bascom-forum.de/showthread.php?6457-Rainbow-Lib-1-12. Пробовал тут регистрироваться, не вышло. По-моему еще денег просят для регистрации. Судя по официальному сайту Bascom, данная библиотека входит в версию программы 2079. У меня 2078. Хотел добавить бы. Просто пришли такие светодиоды. Хочется запустить, но пока не идет понимание того, как сделать управление. Погуглил, примеры есть, но во многих используются вставки ассемблера и я пока не разобрался с кодом.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
'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 = 8
'----[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 программы.
PS. Смотрю саму библиотеку. Не соображу... Она по названию фирменной похожа? я просто те команды, что описаны в хелпе баскома не вижу в этой библиотеке. Или туплю?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Ура, заработало! Буду теперь с библиотекой разбираться и думать куда применить это колечко
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Теоретически, если это активный флюс, то может. Но вероятность все же очень мала. Вы уверены что код рабочий? Можете показать? В монтаже точно ошибок нет? Дисплей другим кодом (заведомо рабочим) проверяли?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Что значит "фузы стоят на 8 МГц"? Внутренний RC-генератор что ли? Можете попробовать в настройках программы уменьшить скорость обмена с дисплеем. Например, поставить $crystal = 1000000.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Вывод R/W не забыли на землю подключить? Скрин фьюзов покажите, будьте добры.
P.S. У HD44780 и совместимых с ним контроллеров инициализация отличается, но в библиотеке должно это быть учтено, я думаю...
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
On Timer0 Tikers 'работа по таймеру On Int1 Infrared 'работа по прерыванию
Dim Tik As Word 'счётчик тиков таймера Dim Byt As Byte 'счётчик принятых бит Dim Repeat_flag As Bit 'флаг повтора Dim Start_flag As Bit 'флаг стартового условия Dim Address As Byte 'байт адреса Dim Command As Byte 'байт команды Dim Address_1 As Byte 'прямой байт адреса Dim Command_1 As Byte 'прямой байт команды Dim Address_0 As Byte 'инверсный байт адреса Dim Command_0 As Byte 'инверсный байт команды Dim Summa As Word
'******************************************************************************* Cls 'Очистить ЖКИ Cursor Off 'Выключить курсор Do 'Основной цикл
Locate 1 , 1 Lcd Address ; " " ; Command_0 ; " " 'Вывести на ЖКИ АДРЕС и КОММАНДУ 'If Command = 8 Then Portc.2 = 1 'Если нажата клавиша "P+" - включить светодиод 'If Command = 240 Then Portc.2 = 0 'Если нажата клавиша "P-" - выключить светодиод Waitms 10 'Задержка 10 мс Loop End 'Конец основного цикла
Timer0 = 253 '31250/(256-253)=10416,66 Hz (96 мкс) '254 - TV SAMSUNG, 253 - DVD SAMSUNG и другие NEC Incr Tik If Tik >= 1200 Then 'если насчитали 1200 тиков, сбросили всё в исходное состояние Tik = 0 Repeat_flag = 0 Start_flag = 0 Address_1 = 0 Command_1 = 0 Address_0 = 0 Command_0 = 0 Command = 0 Address = 0 Stop Timer0 'останавливаем таймер End If
If Tik >= 139 And Tik < 150 Then 'если случилось от 139 до 150 тиков - "СТАРТ" Address = 1 Repeat_flag = 0 Start_flag = 1 Address_1 = 0 Command_1 = 0 Address_0 = 0 Command_0 = 0 End If
If Tik >= 116 And Tik < 139 Then 'если случилось от 116 до 138 тиков - "ПОВТОР" Address = 2 Repeat_flag = 1 Start_flag = 0 End If
If Tik >= 22 And Tik < 116 And Start_flag = 1 Then 'если случилось от 22 до 115 тиков - приняли "1" Incr Byt
If Byt < 9 Then Shift Address_1 , Left Address_1 = Address_1 + 1 End If
If Byt >= 9 And Byt < 17 Then Shift Address_0 , Left Address_0 = Address_0 + 1 End If
If Byt >= 17 And Byt < 25 Then Shift Command_1 , Left Command_1 = Command_1 + 1 End If
If Byt >= 25 Then Shift Command_0 , Left Command_0 = Command_0 + 1 End If End If
If Tik >= 10 And Tik < 22 And Start_flag = 1 Then 'если случилось от 10 до 21 тика - приняли "0" Incr Byt
If Byt < 9 Then Shift Address_1 , Left End If
If Byt >= 9 And Byt < 17 Then Shift Address_0 , Left End If
If Byt >= 17 And Byt < 25 Then Shift Command_1 , Left End If
If Byt >= 25 Then Shift Command_0 , Left End If End If
Tik = 0
If Byt = 32 Then 'если приняли 4 байта, проверяем правильность приёма команды 'если адрес или команда 16-ричные, проверка не проходит, поэтому закомментировано 'Summa = Address_0 + Address_1 'If Summa = 255 Then Address = Address_1 'Else 'Address = 0 'End If
'Summa = Command_0 + Command_1 'If Summa = 255 Then Command = Command_1 'Else 'Command = 0 'End If Byt = 0 Repeat_flag = 0 Start_flag = 0 Stop Timer0 'останавливаем таймер End If
Return кварца нет,фузы заводские,но с внутренним генератором на 8 МГц
Я ж написал-все фузы заводские(RSTDISBL,WDTON,SPIEN,CKOPT,EESAVE,BOOTSZ1,BOOTSZ0,BOOTRST,BODLEVEL,BODEN,SUT1,SUT0-все по умолчанию,то есть заводские,а CKSEL на 8 МГц) Раньше все было норм,а тут,пробовал на другой плате с другими мк и фотоприемниками,ставил кварц на 8 мгц(естественно ставил соотв фузы)-команда=0,адрес=0 либо =2,иногда проскакивает адрес=64,но очень редко,наверно раз в сотню нажатий на пульте,пульт NEC 100 %,пробовал другие пульты того же стандарта-команда=0 и все!
просто у меня есть конструкция часы+2 термометра(дом и улица)+7 будильников+таймер до 99 мин,сейчас хочу добавить программируемый пульт управления для тв,а то на моем телеке нет вкл по времени(типа поставил на 7 утра и в 7,00 он вкл,в телеке и часов нет,только таймер откл),пульт пока собран на другой конструкции,но не могу идентифицировать отправляемые им адрес и команду
Возникла у меня необходимость запустить ЖК индикатор WO1602F-TMI-AT фирмы WINSTAR на контроллере ST7032. По даташиту написано, что совместим с контроллером HD44780. набросал простой код для режима 8-bit. Спойлер
После запуска на индикаторе ничего нет, даже первая строка не подсвечивается. Стандартный дисплей HD44780 при этом работает.
Вложения:
Комментарий к файлу: Datascheet WO1602F-TMI-AT.pdf [417.27 KiB]
Скачиваний: 223
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Это 4 битный режим индикатора. Я использовал 8 битный. Строчка кода об этом и говорит
Код:
Config Lcdpin = Pin , Port = Portb , E = Portc.0 , Rs = Portc.1
Подключение к шине индикатора в данном случае будет такой: PORTB.0 ---> D0 PORTB.1 ---> D1 PORTB.2 ---> D2 PORTB.3 ---> D3 PORTB.4 ---> D4 PORTB.5 ---> D5 PORTB.6 ---> D6 PORTB.7 ---> D7
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Сейчас этот форум просматривают: GOGA7 и гости: 87
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения