Евгений, запустил ваш проект пока на 2 панелях, у меня маленько матрицы отличаются. Они инверсные т.е картинку я вижу в негативе. Решилось это изменением Led(adrs) = 255 изменить на 0 в цикле гашения и добавить строчку после Vrtxt = Lookup(vrw , F6x5) : Vrtxt = 255 - Vrtxt. На двух панелях и atbanned62 работает отлично, завтра буду пробовать запустить на 4. Евгений, загляните пожалуйста в личку. 
Led матрица 32*16 для бегущей строки
Сообщений 31 страница 60 из 61
Поделиться312019-11-15 21:58:33
Поделиться322019-11-18 04:10:52
Угощайтесь на здоровье!!!! На скорую руку механизм удобный набросал, знаю, память жрёт много, но так проще
Скачать: https://yadi.sk/d/bsZ_21wIzl_ugw
Поделиться332019-11-18 08:21:39
На скорую руку механизм удобный набросал
На чём пикселизатор написан?
Поделиться342019-11-18 08:58:49
Спасибо.
Как-то не рационально по памяти, в дата целый байт пропадает. Надо либо добавить рисование в Gray/RGB, либо в бинарнике рисовал (указывать формат).
А в чем прога написана?
Поделиться352019-11-18 10:52:55
Написал в PureBasic, добавлю цветность.
Просто по байтам выводить при выводе по пикселям гораздо проще чем выдирать биты)))
Добавлю возможность в биты байта делать.
Отредактировано Ev3658 (2019-11-18 10:54:22)
Поделиться362019-11-18 12:04:24
Просто по байтам выводить при выводе по пикселям гораздо проще чем выдирать биты
Согласен и даже возможно будет повторение с имеющимися утилитами баскома и прочих реализаций, но здесь больно простой и удобный интерфейс, без перегруза.
Ещё пожалуйста добавь как данные в дата писать (десятичные/хекс/бинарик), для наглядности.
Поделиться372019-11-18 13:17:26
На скорую руку бинарный сделал, из минусов его перегруз графической оболочки компилятор.
Собственно по выводу из байтов:
Dim L As Byte
Dim P As Byte
Dim O As Byte
Restore Ris1
For O = 0 To 15
For P = 0 To 31
Read L
Call Point(p , O , L)
Next P
Next OВывод из битов в байте:
Dim L As Byte
Dim P As Byte
Dim O As Byte
Dim I As Byte
Restore Ris1
For O = 0 To 15
For P = 0 To 31
I = P And &B0000_0111
If I = 0 Then Read L
If L.i = 1 Then Call Point(p , O , 1)
Next P
Next OОтредактировано Ev3658 (2019-11-18 14:21:33)
Поделиться382019-11-18 15:17:11
Супер!
Тут подумал, а зачем в десятичном виде дату генерить? Коряво получится, почему сразу в хекс не делать и всё?
И данные могут быть как монохром/градиент/цвета.
Поделиться392019-11-18 19:27:33
зачем в десятичном виде
Тут хоть исправить пиксел порой можно, красивей как-то выглядит, кто если глянет на монитор, то вообще как XaKep
Я её на скорую руку написал, вроде работает исправно. Добавил отражение в блоке Data.
Поделиться402019-11-18 19:38:04
красивей как-то выглядит
Мне тоже нравится. Я для часов так стрелки кодировал:
'+++++СТРЕЛКИ ЧАСОВ+++++
'(
Край - Центр
#
## #
########### ### (*) ###
## #
#
')
Strelki:
'---------1 вид---------
'Секундная
Data &B0000000000000000%
Data &B0000000000000000%
Data &B1111111111111111%
Data &B0000000000000000%
Data &B0000000000000000%
Data &B0000000000000000%
Data &B0000000000100000%
Data &B0000000011011111%
Data &B0000000000100000%
Data &B0000000000000000%
'Минутная
Data &B0000000000000000%
Data &B0000011111110000%
Data &B0011100000001111%
Data &B0000011111110000%
Data &B0000000000000000%
Data &B0000000000000000%
Data &B0000000000000010%
Data &B0000000000001101%
Data &B0000000000000010%
Data &B0000000000000000%
'Часовая
Data &B0000000000110000%
Data &B0000000011101110%
Data &B0000111111000001%
Data &B0000000011101110%
Data &B0000000000110000%
Data &B0000000000000000%
Data &B0000000000000010%
Data &B0000000000001101%
Data &B0000000000000010%
Data &B0000000000000000%
Поделиться412019-11-18 20:04:39
Всё, вроде достаточный функционал. Думаю сохранение файла будет лишним. Надо бы протестирвовать путно)))

Ссылка всё та-же: https://yadi.sk/d/bsZ_21wIzl_ugw
Отредактировано Ev3658 (2019-11-18 21:56:43)
Поделиться422019-11-18 21:39:08
красивА ))
Поделиться432019-11-18 23:32:48
Всё равно придётся допиливать программу.
Когда устанешь по одному кадру копировать, сделаешь массив кадров, а потом перемещение по ним, а потом всё таки сохранение и в файл.
А потом ещё много чего. И наконец поймешь, что создал уникальный инструмент, который нужен только тебе. Пройдено и неоднократно проверено.
Поделиться442019-11-19 00:22:24
придётся допиливать программу.
Не не не, глюки конечно есть, но я доволен
На ней как кистью работать можно, быстро результаты получаю, не ожидал, знакогенератор цифр 8х16 за 15 минут сделал.
Тут исходник на коленке запилен, через пару дней не вспомню в нем ничего)))
Видео - https://yadi.sk/i/NdadNUVg0upp7A
Отредактировано Ev3658 (2019-11-19 00:28:59)
Поделиться472019-11-19 23:53:22
Пикселизатор и оказывается в окно графику выводить не культурно
Куда ее тогда выводить? Или вы про
StartDrawing(WindowOutput(0))
При сворачивании/разворачивании или других действиях окно будет перерисовываться что потребует обновить графику.
Для этой цели лучше подойдет ImageGadget, а еще лучше CanvasGadget, который поддерживает работу с мышкой и клавиатурой.
Поделиться482019-11-20 15:00:00
протестировали вообщем Пикселизатор
У меня не запускается. 32 бита.
Поделиться492019-11-21 22:51:23
У меня не запускается. 32 бита.
Вот, скомпилировал в x86, но не проверял, компилировал в старой версии и пришлось убрать некоторые параметры окон:
x86 - https://yadi.sk/d/bsbii5XkEAving
x64 - https://yadi.sk/d/bsZ_21wIzl_ugw
Отредактировано Ev3658 (2019-11-21 22:54:50)
Поделиться502019-11-26 01:40:54
Здравствуйте, уважаемые форумчане, может кто-то из Вас работал с матрицей для бегущей строки Qiang Li P10 или им подобных? Информацию не могу найти ни них.
Привет!
Помощь-то нужна ещё кому-то?
Отредактировано samego (2019-11-28 09:12:44)
Поделиться512019-12-20 00:28:37
Привет!
Помощь-то нужна ещё кому-то?
Если только оптимизировать код 
Поделиться522019-12-22 12:17:53
Всем привет!
Данный код делал очень давно. Но сейчас одноцветные матрицы уже не актуальны. А код для них существенно отличается от кода для полноцветных матриц.
Проект RED MATRIX Atmega-32
Здесь показаны основные режимы прокрутки и вывода текста.
Для проекта были написаны шрифты. А позже была написана и программа редактирования шрифтов. В данном проекте реализованы 4 "ходовых" шрифта. Добавлена русификация.
Были разработаны печатные платы под Atmega-8, Atmega-32, Atmega-128, Atmega-328.
Кстати, осталось много не нужных плат, которые могу просто подарить.
Могу выложить фото плат.
Актуальная плата осталась только на Atmega-8(328) для RGB матриц с интерфейсом RS-485.
Поделиться532019-12-22 12:41:46
Наверно после попыток вывести сигнал VGA меня торкнуло на оптимизацию)))
Ваш код вывода данных на дисплей:
S_load1:
Shiftout D_red , Shift_clock , Memory(c_1) , 3 , 8
Return
...
...
...
...
Display_refresh:
Load Timer2 , Timer2reload
Incr Page_counter
If Page_counter > 3 Then Page_counter = 0
Select Case Page_counter
Case 0:
For C_1 = 3 To 63 Step 4 : Gosub S_load1 : Next C_1
Gosub S_load2 : A = 0 : B = 0
Case 1:
For C_1 = 2 To 62 Step 4 : Gosub S_load1 : Next C_1
Gosub S_load2 : A = 1 : B = 0
Case 2:
For C_1 = 1 To 61 Step 4 : Gosub S_load1 : Next C_1
Gosub S_load2 : A = 0 : B = 1
Case 3:
For C_1 = 0 To 60 Step 4 : Gosub S_load1 : Next C_1
Gosub S_load2 : A = 1 : B = 1
End Select
Pwm1b = Brightness
Trigger = 1
ReturnЯ сделал иначе, выводит одну строку из 4х по прерываниям по таймеру:
Graf:
'============================= Код вывода на дисплей =================================================
'Рисуем только одну строку из 4х
Adrsstart = Lsdstr * Triglsd 'высчитываем начальный адрес строки
Incr Adrsstart 'Прибавляем на один из-за проблем в Баскоме в нумерации массива, он не должен начинатся с нуля
Adrsend = Adrsstart + Lsdstr 'высчитываем конечный адрес строки
For Adrsschet = Adrsstart To Adrsend 'Перебираем видео память
Shiftout Data_pin , Clk_pin , Led(adrsschet) 'Вывод данных
Next Adrsschet
Set Stb_pin 'Дрыгаем защёлкой регистров и через паузу закрываем (для надёжности)
Select Case Triglsd 'Выбираем адрес строки в ячейке (1-4) - тут проблема, нужна оптимизация кода
Case 0
A_pin = 1
B_pin = 1
Incr Triglsd
Case 1
A_pin = 0
B_pin = 1
Incr Triglsd
Case 2
A_pin = 1
B_pin = 0
Incr Triglsd
Case 3
A_pin = 0
B_pin = 0
Triglsd = 0
End Select
Reset Stb_pin 'сбрасываем заёлку регистров
'=====================================================================================================
ReturnПоделиться542019-12-22 13:10:06
Наверно после попыток вывести сигнал VGA меня торкнуло на оптимизацию)))
Ваш код вывода данных на дисплей:
Я сделал иначе, выводит одну строку из 4х по прерываниям по таймеру:
Как вариант, CASE можно сделать на ассемблере. Только зачем?
Поделиться552019-12-22 14:44:15
Как вариант, CASE можно сделать на ассемблере. Только зачем?
В целом да, если только чтоб больше модулей охватить одним микроконтроллером.
Кстати, платы очень хорошие, по идее можно было бы вам часы городу предложить маленькие.
Поделиться562019-12-22 15:36:09
В целом да, если только чтоб больше модулей охватить одним микроконтроллером.
Кстати, платы очень хорошие, по идее можно было бы вам часы городу предложить маленькие.
Спасибо!
В полноцветных модулях схемотехника совсем другая. Там нет типовых сдвиговых регистров HC595. Да и сам код обновления экрана почти полностью на ассемблере написан.
На 128 атмеге без проблем можно соединить последовательно 8-10 модулей S8 SMD 320/160 Qiang Li (20х40). В каждом модуле по 800 RGB светодиодов. Анимацию на бейсике конечно не вывести, но простую динамику и статику легко.
Пример - 10 матриц.
Поделиться572020-07-20 17:39:01
Выложу рабочий код на одну панель и чуть позже печатку для него:
Код:$Regfile="m328pbdef.dat" $Crystal=14745600 $hwstack = 120 $swstack = 120 $framesize = 120 Dim X As Word Dim Y As Byte Dim S As String * 55 Dim Cl As Byte Declare Sub Lcdcls() Declare Sub Point(byval X As Word , Byval Y As Byte , Byval Cl As Byte) 'подпрограмма вывода пикселя Declare Sub Cifra(byval X As Word , Byval Y As Byte , Byval Num As String * 6) 'Тут на два сегмента: 'Const Lsdram = 129 'Количество панелей (65=1 панель, 129=две панели) - но почему-то надо чуть больше чтоб небыло утчки памяти, по идее 64 и 128 должно быть Const Lsdram = 65 'Это на одну матрицу, но учтите, в цикле координаты X 63 поменяйте на 31 Const Lsdstr = Lsdram / 4 'Рассчёт блоков для вывода графики Dim Endx As Byte Dim Endstr As Byte Endx = Lsdram / 2 Endstr = Lsdram / 11 '================= Конфигурация портов 'таймер OC1B Portb.2 Config Timer1 = Pwm ,Pwm = 8,Compare B Pwm = Clear up ,Prescale = 64 ' Частота шим-а 1953.125 Гц Config PORTb.2 = Output 'выход на порт регистра OC1B Pwm1b = 100 Start Timer1 '==== Выводы экрана Config Portd.5=output Config Portd.6=output Config Portd.7=output Config Portb.0=output Config Portb.1=output Config Portb.2=output 'Oe_pin Alias Portb.2 'Это для отклчюения и включения дисплея, можно посадить на таймер и регулировать яркость. 'Set Oe_pin 'Включаем дисплей (можно его на таймер поставить для регулировки яркости) A_pin Alias Portd.5 'Адрес в ячейке B_pin Alias Portd.6 'Адрес в ячейке Clk_pin Alias Portd.7 'строб передачи данных SPI Stb_pin Alias Portb.0 'Строб защёлки Data_pin Alias Portb.1 'Вывод данных SPI '================= Переменные Dim Led(200) As Byte 'Массив видео памяти Dim Adrsstart As Byte 'координаты памяти Dim Adrsend As Byte 'координаты памяти Dim Adrsschet As Byte 'координаты памяти Dim Adrs As Byte 'координаты памяти Dim Triglsd As Byte 'Адрес строки в ячейке '============== Основной программы Dim Rezhim As Byte 'Режим устройства '=============== Переменные влажности и температуры Dim T As Byte '============== Переменные графики Dim Xadrs As Word Dim Yadrs As Byte Dim Xost As Byte 'Выссчитывание координаты отстака X (положение бита в байте) Dim Yost As Byte 'высчитывание остатка координаты Y Dim Trigstr As Byte 'для подсчёта строки в кластере Call Lcdcls() Set Stb_pin 'Дрыгаем защёлкой регистров чтоб наверняка всё сбросить Reset Stb_pin X = 0 Y = 0 Triglsd = 0 Config Timer2 = Timer , Prescale = 256 'Запускаем таймер, он будет рисовать одну строку из четырёх On Timer2 Graf Enable Timer2 Enable Interrupts 'Set Oe_pin 'Включаем дисплей Dim L As Byte Dim P As Byte Dim O As Byte Dim I As Byte Dim Tm2 As Byte Dim Txt As String * 255 Dim Vr As Byte Dim Animal As Byte Dim Animalvr As Byte Dim Vrb As Byte 'Временная переменная Байт Dim Tm As Byte Do For P = 30 To 90 S = " " S = S + Str(p) S = S + "%" Call Cifra(1 , 0 , S) Waitms 100 Next P 'Call Lcdcls() '==================Просто тестовая программа проверки правильности вывода видео данных ================= Loop Sub Cifra(byval X As Word , Byval Y As Byte , Byval Num As String * 6) Local Vry As Byte Local Vrx As Word Local Vrp As Byte Local Vro As Byte Local Vrb As Byte Local Vrxp As Word Local P As Byte Local L As Byte Local Vr As Byte Local S As String * 1 Local Compensator As Byte Local Compensator2 As Word L = Len(num) For P = 1 To L 'разбераем строку по буквам S = Mid(num , P , 1) Compensator = 7 'компинсация вывода узких знаков (точки и запятой) Vry = Y Vrxp = Compensator2 Vrxp = Vrxp + X Select Case S '========== Так будет проще для вас, определяем знак в строке Case "0" Vr = 0 Case "1" Vr = 16 Case "2" Vr = 32 Case "3" Vr = 48 Case "4" Vr = 64 Case "5" Vr = 80 Case "6" Vr = 96 Case "7" Vr = 112 Case "8" Vr = 128 Case "9" Vr = 144 Case "+" Vr = 160 Case "-" Vr = 176 Case "%" Vr = 192 Case " " 'Пробел для стирания Vr = 208 Case "." Vr = 224 Compensator = 3 'длина и вправо Vrxp = Vrxp - 1 'влево Case "," Vr = 240 Compensator = 3 'длина и вправо Vrxp = Vrxp - 1 'влево Case Else Break End Select Vr = Vr + 15 'Я тут кодкосячил с разворотом шрифта по Y For Vro = 0 To 15 Vrb = Lookup(vr , Cifri) Decr Vr 'INCR если убрать отражение шрифта по Y Vrx = Vrxp For Vrp = Compensator To 0 Step -1 If Vrb.vrp = 1 Then Call Point(vrx , Vry , 1) Else Call Point(vrx , Vry , 0) End If Incr Vrx Next Vrp Incr Vry Next Vro Incr Compensator Compensator2 = Compensator2 + Compensator Next P Compensator2 = 0 End Sub Sub Lcdcls() 'Очищаем LCD экран For Adrs = 1 To Lsdram 'очищаем Led(adrs) = 255 Next Adrs End Sub Sub Point(x As Word , Y As Byte , Cl As Byte ) 'Рисуем точку 'X = 31 - x 'Y = 15 - Y Xadrs = X / 8 'Так как 8 точек в одном слобце, делим и узнаём сколько столбцов Xadrs = Xadrs * 4 'Умнажаем на 4 кластера в столбце Xost = X Mod 8 'Выссчитываем пиксель из байта Yadrs = Y Mod 4 'определяем какая строка в кластере Yadrs = Yadrs * Lsdstr 'умножаем на длину строки экрана Yost = Y / 4 'высчитываем сколько кластеров в столбце Yadrs = Yadrs + Yost 'суммируем полученное Yadrs = Xadrs + Yadrs 'прибавляем рассчёты по X Yadrs = Lsdram - Yadrs 'вычитаем из общего массива, там почему-то стабильней If Yadrs <= Lsdram And Yadrs > 0 Then Led(yadrs).xost = Not Cl.0 'рисуем точку End If End Sub Graf: '============================= Код вывода на дисплей ================================================= 'Рисуем только одну строку из 4х Adrsstart = Lsdstr * Triglsd 'высчитываем начальный адрес строки Incr Adrsstart 'Прибавляем на один из-за проблем в Баскоме в нумерации массива, он не должен начинатся с нуля Adrsend = Adrsstart + Lsdstr 'высчитываем конечный адрес строки For Adrsschet = Adrsstart To Adrsend 'Перебираем видео память Shiftout Data_pin , Clk_pin , Led(adrsschet) 'Вывод данных Next Adrsschet Set Stb_pin 'Дрыгаем защёлкой регистров и через паузу закрываем (для надёжности) Select Case Triglsd 'Выбираем адрес строки в ячейке (1-4) - тут проблема, нужна оптимизация кода Case 0 A_pin = 1 B_pin = 1 Incr Triglsd Case 1 A_pin = 0 B_pin = 1 Incr Triglsd Case 2 A_pin = 1 B_pin = 0 Incr Triglsd Case 3 A_pin = 0 B_pin = 0 Triglsd = 0 End Select Reset Stb_pin 'сбрасываем заёлку регистров '===================================================================================================== Return End Cifri: '0 DATA &B0011_1000 ' 1 DATA &B0100_0100 ' 2 DATA &B1100_0110 ' 3 DATA &B1100_0110 ' 4 DATA &B1100_0110 ' 5 DATA &B1100_0110 ' 6 DATA &B1100_0110 ' 7 DATA &B1100_0110 ' 8 DATA &B1100_0110 ' 9 DATA &B1100_0110 ' 10 DATA &B1100_0110 ' 11 DATA &B1100_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B0100_0100 ' 14 DATA &B0011_1000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '1 DATA &B0001_1000 ' 1 DATA &B0011_1000 ' 2 DATA &B0011_1000 ' 3 DATA &B0111_1000 ' 4 DATA &B0111_1000 ' 5 DATA &B0001_1000 ' 6 DATA &B0001_1000 ' 7 DATA &B0001_1000 ' 8 DATA &B0001_1000 ' 9 DATA &B0001_1000 ' 10 DATA &B0001_1000 ' 11 DATA &B0001_1000 ' 12 DATA &B0001_1000 ' 13 DATA &B0001_1000 ' 14 DATA &B0001_1000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '2 DATA &B0011_1000 ' 1 DATA &B0100_0100 ' 2 DATA &B1100_0110 ' 3 DATA &B1100_0110 ' 4 DATA &B1100_0110 ' 5 DATA &B0000_0110 ' 6 DATA &B0000_0100 ' 7 DATA &B0000_1000 ' 8 DATA &B0001_0000 ' 9 DATA &B0010_0000 ' 10 DATA &B0100_0000 ' 11 DATA &B1100_0000 ' 12 DATA &B1100_0000 ' 13 DATA &B1100_0110 ' 14 DATA &B1111_1110 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '3 ' DATA &B0011_1000 ' 1 DATA &B0100_0100 ' 2 DATA &B1100_0110 ' 3 DATA &B1100_0110 ' 4 DATA &B0000_0110 ' 5 DATA &B0000_0110 ' 6 DATA &B0001_1100 ' 7 DATA &B0001_1100 ' 8 DATA &B0000_0110 ' 9 DATA &B0000_0110 ' 10 DATA &B0000_0110 ' 11 DATA &B1100_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B0100_0100 ' 14 DATA &B0011_1000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '4 DATA &B1100_1100 ' 1 DATA &B1100_1100 ' 2 DATA &B1100_1100 ' 3 DATA &B1100_1100 ' 4 DATA &B1100_1100 ' 5 DATA &B1100_1100 ' 6 DATA &B1100_1100 ' 7 DATA &B1111_1110 ' 8 DATA &B1111_1110 ' 9 DATA &B0000_1100 ' 10 DATA &B0000_1100 ' 11 DATA &B0000_1100 ' 12 DATA &B0000_1100 ' 13 DATA &B0000_1100 ' 14 DATA &B0000_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '5 DATA &B1111_1110 ' 1 DATA &B1100_0110 ' 2 DATA &B1100_0000 ' 3 DATA &B1100_0000 ' 4 DATA &B1100_0000 ' 5 DATA &B1100_0000 ' 6 DATA &B1111_1100 ' 7 DATA &B0000_0110 ' 8 DATA &B0000_0110 ' 9 DATA &B0000_0110 ' 10 DATA &B0000_0110 ' 11 DATA &B1100_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B1100_0110 ' 14 DATA &B0111_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '6 DATA &B0111_1110 ' 1 DATA &B1100_0110 ' 2 DATA &B1100_0000 ' 3 DATA &B1100_0000 ' 4 DATA &B1100_0000 ' 5 DATA &B1100_0000 ' 6 DATA &B1111_1100 ' 7 DATA &B1100_0110 ' 8 DATA &B1100_0110 ' 9 DATA &B1100_0110 ' 10 DATA &B1100_0110 ' 11 DATA &B1100_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B1100_0110 ' 14 DATA &B0111_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '7 DATA &B1111_1110 ' 1 DATA &B1111_1110 ' 2 DATA &B0000_0110 ' 3 DATA &B0000_0110 ' 4 DATA &B0000_0110 ' 5 DATA &B0000_1100 ' 6 DATA &B0001_1000 ' 7 DATA &B0001_1000 ' 8 DATA &B0001_1000 ' 9 DATA &B0011_0000 ' 10 DATA &B0011_0000 ' 11 DATA &B0011_0000 ' 12 DATA &B0110_0000 ' 13 DATA &B0110_0000 ' 14 DATA &B0110_0000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '8 DATA &B0111_1100 ' 1 DATA &B1100_0110 ' 2 DATA &B1100_0110 ' 3 DATA &B1100_0110 ' 4 DATA &B1100_0110 ' 5 DATA &B1100_0110 ' 6 DATA &B1100_0110 ' 7 DATA &B0111_1100 ' 8 DATA &B1100_0110 ' 9 DATA &B1100_0110 ' 10 DATA &B1100_0110 ' 11 DATA &B1100_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B1100_0110 ' 14 DATA &B0111_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '9 DATA &B0111_1100 ' 1 DATA &B1100_0110 ' 2 DATA &B1100_0110 ' 3 DATA &B1100_0110 ' 4 DATA &B1100_0110 ' 5 DATA &B1100_0110 ' 6 DATA &B1100_0110 ' 7 DATA &B1100_0110 ' 8 DATA &B0111_1110 ' 9 DATA &B0000_0110 ' 10 DATA &B0000_0110 ' 11 DATA &B0000_0110 ' 12 DATA &B1100_0110 ' 13 DATA &B1100_0110 ' 14 DATA &B0111_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '+ DATA &B0000_0000 ' 1 DATA &B0000_0000 ' 2 DATA &B0000_0000 ' 3 DATA &B0000_0000 ' 4 DATA &B0011_0000 ' 5 DATA &B0011_0000 ' 6 DATA &B1111_1100 ' 7 DATA &B1111_1100 ' 8 DATA &B0011_0000 ' 9 DATA &B0011_0000 ' 10 DATA &B0000_0000 ' 11 DATA &B0000_0000 ' 12 DATA &B0000_0000 ' 13 DATA &B0000_0000 ' 14 DATA &B0000_0000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '- DATA &B0000_0000 ' 1 DATA &B0000_0000 ' 2 DATA &B0000_0000 ' 3 DATA &B0000_0000 ' 4 DATA &B0000_0000 ' 5 DATA &B0000_0000 ' 6 DATA &B0111_1100 ' 7 DATA &B0111_1100 ' 8 DATA &B0000_0000 ' 9 DATA &B0000_0000 ' 10 DATA &B0000_0000 ' 11 DATA &B0000_0000 ' 12 DATA &B0000_0000 ' 13 DATA &B0000_0000 ' 14 DATA &B0000_0000 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 '%-20 DATA &B0110_0010 ' 1 DATA &B1001_0010 ' 2 DATA &B1001_0100 ' 3 DATA &B0110_0100 ' 4 DATA &B0000_1000 ' 5 DATA &B0000_1000 ' 6 DATA &B0001_0000 ' 7 DATA &B0001_0000 ' 8 DATA &B0001_0000 ' 9 DATA &B0010_0000 ' 10 DATA &B0010_0000 ' 11 DATA &B0100_1100 ' 12 DATA &B0101_0010 ' 13 DATA &B1001_0010 ' 14 DATA &B1000_1100 ' 15 DATA &B0000_0000 ' 16 ' Байтов:16 'Пробел для стирания DATA &B0000_0000 ' 1 DATA &B0000_0000 ' 2 DATA &B0000_0000 ' 3 DATA &B0000_0000 ' 4 DATA &B0000_0000 ' 5 DATA &B0000_0000 ' 6 DATA &B0000_0000 ' 7 DATA &B0000_0000 ' 8 DATA &B0000_0000 ' 9 DATA &B0000_0000 ' 10 DATA &B0000_0000 ' 11 DATA &B0000_0000 ' 12 DATA &B0000_0000 ' 13 DATA &B0000_0000 ' 14 DATA &B0000_0000 ' 15 DATA &B0000_0000 ' 16 'точка DATA &B00_000000 ' 1 DATA &B00_000000 ' 2 DATA &B00_000000 ' 3 DATA &B00_000000 ' 4 DATA &B00_000000 ' 5 DATA &B00_000000 ' 6 DATA &B00_000000 ' 7 DATA &B00_000000 ' 8 DATA &B00_000000 ' 9 DATA &B00_000000 ' 10 DATA &B00_000000 ' 11 DATA &B00_000000 ' 12 DATA &B00_000111 ' 13 DATA &B00_000111 ' 14 DATA &B00_000111 ' 15 DATA &B00_000000 ' 16 ' Байтов:16 'эзапятая DATA &B00_000000 ' 1 Data &B00_000000 ' 2 Data &B00_000000 ' 3 Data &B00_000000 ' 4 Data &B00_000000 ' 5 Data &B00_000000 ' 6 Data &B00_000000 ' 7 DATA &B00_000000 ' 8 Data &B00_000000 ' 9 DATA &B00_000000 ' 10 Data &B00_000000 ' 11 DATA &B00_000000 ' 12 Data &B00_000111 ' 13 DATA &B00_000111 ' 14 Data &B00_000011 ' 15 Data &B00_000100 ' 16 ' Байтов:16
Поделиться582020-07-26 15:48:54
В ВК выложил видео, пока в процессе созидания. Код выше использован как графическое ядро.
Жаль датчик атмосферного давления быстро не успел подружить, но уже вот результат:
https://vk.com/video5082961_456240815
Плавный переход между режимами через регулятор яркости в основе аппаратного ШИМ, еле развёртку согласовал.
$Regfile="m328pbdef.dat" $Crystal=14745600 $hwstack = 96 $swstack = 120 $framesize = 120 Config Single = Scientific , Digits = 1 '============================= ШИМ яркости 'таймер OC1B Portb.2 Config Timer1 = Pwm ,Pwm = 8,Compare B Pwm = Clear up ,Prescale = 64 Config PORTb.2 = Output 'выход на порт регистра OC1B Pwm1b = lowled Start Timer1 '======================== Таймер развёртки Config Timer2 = Timer , Prescale = 256 'Запускаем таймер, он будет рисовать одну строку из четырёх On Timer2 Graf Enable Timer2
Поделиться592020-07-26 21:02:19
"Страница доступна только авторизованным пользователям." 












