VFD интерфейс в RTD, и все что на него можно повесить.

о железе плеера и о периферии

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby maximen » 19 Feb 2017, 18:59

Конфиг полностью зажжённого дисплея на Hyundai M-box HMB-R600K на микросхеме PT6311B-LQ(как на iNeXT HD и iconBIT XDS1003D)
| +
#!/bin/sh
#
#!/bin/sh
#
#for 1283
VFD_CTL=0xB801B700
VFD_WRCTL=0xB801B704
VFDO=0xB801B708
VFD_ARDCTL=0xB801B70C
VFD_KPADLIE=0xB801B710
VFD_KPADHIE=0xB801B714
VFD_SWIE=0xB801B718

SEND4=0x00F0
SEND3=0x0070
SEND2=0x0030
SEND1=0x0010

D0=0x0
DF=0xFFFFFFFF

REG32="/usr/local/etc/mos/bin/gpio -n:p"
#########
$REG32 $VFDO 0x00C044;$REG32 $VFD_WRCTL 0x1370
##########
$REG32 $VFDO 0xC040;$REG32 $VFD_WRCTL 0x0000330
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO $DF;$REG32 $VFD_WRCTL $SEND4

ps: выложу здесь чтобы не потерять
Saturn: iconBIT XDS73d mk2(inext_hd1_225_r0)
Android tv box: Tox1, 2 * X3 Cube
User avatar
maximen
 
Posts: 771
Joined: 21 Feb 2012, 16:07
Location: Донбасс

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby Virtual » 19 Feb 2017, 19:38

наскок мне известно на ламповых дисплеях сегментов совсем не 7
тоесть
#SCANNING AND DISPLAY DIMMING
$REG32 $VFDO 0x00008F07;$REG32 $VFD_WRCTL 0x00001330
# ^ ^
# Яркость___________| | (7(выкл.) ; 8(мин.)...F(макс.)
# Кол-во сегментов____|

должно быть иное
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6860
Joined: 01 Oct 2010, 17:17
Location: RU

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby AlexZ » 19 Feb 2017, 19:57

to Virtual
Если речь идет о сегментах из которых состоит одна цифра, то их семь. На BT-3550B ведь ламповый дисплей я правильно понял?
Eva Vision Bluetimes BT-3550B (amps r6+3Dgui)
AlexZ
 
Posts: 26
Joined: 12 Mar 2016, 15:28

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby Virtual » 20 Feb 2017, 08:30

на XDS1003D и клонах ламповый дисплей, очень похоже 14 сегментов.
Attachments
Display_2.jpg
Display_2.jpg (13.67 KiB) Viewed 6725 times
Display_1.jpg
Display_1.jpg (14.34 KiB) Viewed 6725 times
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6860
Joined: 01 Oct 2010, 17:17
Location: RU

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby AlexZ » 20 Feb 2017, 11:59

VFD у BT3550B
Attachments
VFD BT3550B.jpg
VFD BT3550B.jpg (35.56 KiB) Viewed 6697 times
Eva Vision Bluetimes BT-3550B (amps r6+3Dgui)
AlexZ
 
Posts: 26
Joined: 12 Mar 2016, 15:28

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby Morpheus68 » 22 Feb 2017, 14:29

Всем добрый день! Внесу свои 5 коп.
По совету ув. Virtual'a нарисовал отдельный скрипт с вызовами через case -
setVFD.zip
(1.39 KiB) Downloaded 342 times
Сам скрипт лежит в /usr/local/etc/, вызовы размещены следующим образом:
1. в файле /usr/local/etc/rc.init/S01aPower.sh, в секции start - /usr/local/etc/setVFD boot&
2. в файле /usr/local/etc/rc.init/S99setOffonVFD, в секции stop - /usr/local/etc/setVFD off&
3. в файле /usr/local/etc/rc.init/S01aPower.sh, в секции stop - /usr/local/etc/setVFD clear
4. в файле /usr/local/etc/rc.init/S97WiFiOnOff, в соответсвии с логикой вкл/выкл WiFi- /usr/local/etc/setVFD net_on& или /usr/local/etc/setVFD net_off&
Логика размещения была такая: S01aPower.sh - есть самый первый выполняемый (секция start) доступный скрипт при загрузке плеера, S99setOffonVFD - будет самым первым при выключении (секция stop).
Заметьте, что во всех вызовах, кроме №3, присутствует знак амперсанд, который говорит, что команда выполняется в фоне. Это значит, что плеер НЕ ждёт пока выполнится скипт, а продожает свои действия (запуск/остановку).
Отдельно отрисовка "off" на дисплее и его гашение были сделанны как раз в связи с фоновым выполнением скрипта.
Могу заметить, что реализация на bash не сильно снижает скорость полёта или гибкость использования. А вот привязка к реальным событиям в системе - есть более верное направление развития. Например через анализ консольного вывода...
Ещё раз спасибо ув. Virtual и _Danila_Master_ за проделанную работу и начало движения в этом направлении!

Скрипт S99setOffonVFD -
S99setOffonVFD.zip
(263 Bytes) Downloaded 318 times
3Q F370HW (он же measy X5) -> amps_r6_nogui+3Dgui
Morpheus68
 
Posts: 53
Joined: 16 Sep 2016, 14:23
Location: Москва

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby _Danila_Master_ » 04 Mar 2017, 05:02

Накидал так сказать, черновой алгоритм вывода часиков (на примере своей XDS8003D), нерабочий, т.к.
1. Не все команды получилось запустить на баше
2. Не реализовал командами конвертер HEX в DEC и обратно.
3. Это просто наработки...
Code: Select all
# https://ru.wikipedia.org/wiki/Date
# Вывести текущее время в нужном формате (2300)
date +%H%M

# Записать текущее время в файл
# Эти данные нужно раз в минуту обновлять (или циклом или сравнением)
date +%H%M>/tmp/f_time.txt

# Задать переменную fT$ для файла /tmp/f_time.txt
fT=/tmp/f_time.txt

# Записать каждый символ из /tmp/f_time.txt в отдельные файлы
# можно было это и не делать, а сразу присвоить переменным fHx и fMx выдергивание символа через команду cut, но я сделал пока так...
cut -b 1 $fT>/tmp/f_hour1.txt
cut -b 2 $fT>/tmp/f_hour2.txt
cut -b 3 $fT>/tmp/f_minute1.txt
cut -b 4 $fT>/tmp/f_minute2.txt

# Задать переменные каждой цифире из файлов
fH1=/tmp/f_hour1.txt
fH2=/tmp/f_hour2.txt
fM1=/tmp/f_minute1.txt
fM1=/tmp/f_minute2.txt

# Массивы значений цифр (HH:MM)
# (на баше не работают, хотя по ссылке описывается пример именно из баша)
# https://rtfm.co.ua/bash-ispolzovanie-massivov/
#
#XDS8003D
#
#DIGGIT 2 (H1)
#____(A=_B=_C=_D=_E=_F=_G=)
D2_0=(10 10 10 10 10 10 00)
D2_1=(00 10 10 00 00 00 00)
D2_2=(10 10 00 10 10 00 10)
#DIGGIT 3 (H2)
D3_0=(04 04 04 04 04 04 00)
D3_1=(00 04 04 00 00 00 00)
D3_2=(04 04 00 04 04 00 04)
D3_3=(04 04 04 04 00 00 04)
D3_4=(00 04 04 00 00 04 04)
D3_5=(04 00 04 04 00 04 04)
D3_6=(04 00 04 04 04 04 04)
D3_7=(04 04 04 00 00 00 00)
D3_8=(04 04 04 04 04 04 04)
D3_9=(04 04 04 04 00 04 04)
#DIGGIT 4 (M1)
D4_0=(20 20 20 20 20 20 00)
D4_1=(00 20 20 00 00 00 00)
D4_2=(20 20 00 20 20 00 20)
D4_3=(20 20 20 20 00 00 20)
D4_4=(00 20 20 00 00 20 20)
D4_5=(20 00 20 20 00 20 20)
#DIGGIT 5 (M2)
D5_0=(40 40 40 40 40 40 00)
D5_1=(00 40 40 00 00 00 00)
D5_2=(40 40 00 40 40 00 40)
D5_3=(40 40 40 40 00 00 40)
D5_4=(00 40 40 00 00 40 40)
D5_5=(40 00 40 40 00 40 40)
D5_6=(40 00 40 40 40 40 40)
D5_7=(40 40 40 00 00 00 00)
D5_8=(40 40 40 40 40 40 40)
D5_9=(40 40 40 40 00 40 40)

# Сравнение 1 цифры ЧАСА из файла f_hour1.txt и присвоение соответствующего значения из массива
if cat $fH1=0 then D2=$D2_0
if cat $fH1=1 then D2=$D2_1
if cat $fH1=2 then D2=$D2_2
# Сравнение 2 цифры ЧАСА из файла f_hour2.txt и присвоение соответствующего значения из массива
if cat $fH2=0 then D3=$D3_0
if cat $fH2=1 then D3=$D3_1
if cat $fH2=2 then D3=$D3_2
if cat $fH2=3 then D3=$D3_3
if cat $fH2=4 then D3=$D3_4
if cat $fH2=5 then D3=$D3_5
if cat $fH2=6 then D3=$D3_6
if cat $fH2=7 then D3=$D3_7
if cat $fH2=8 then D3=$D3_8
if cat $fH2=9 then D3=$D3_9
# Сравнение 1 цифры МИНУТ из файла f_minute1.txt и присвоение соответствующего значения из массива
if cat $fM1=0 then D4=$D4_0
if cat $fM1=1 then D4=$D4_1
if cat $fM1=2 then D4=$D4_2
if cat $fM1=3 then D4=$D4_3
if cat $fM1=4 then D4=$D4_4
if cat $fM1=5 then D4=$D4_5
# Сравнение 2 цифры МИНУТ из файла f_minute2.txt и присвоение соответствующего значения из массива
if cat $fM2=0 then D5=$D5_0
if cat $fM2=1 then D5=$D5_1
if cat $fM2=2 then D5=$D5_2
if cat $fM2=3 then D5=$D5_3
if cat $fM2=4 then D5=$D5_4
if cat $fM2=5 then D5=$D5_5
if cat $fM2=6 then D5=$D5_6
if cat $fM2=7 then D5=$D5_7
if cat $fM2=8 then D5=$D5_8
if cat $fM2=9 then D5=$D5_9

# Теперь, каждому сегменту присваивается сумма значений всех четырех цифирь по соостветствующим сегментам...
#
# Вот тут будет косяк, т.к. значения в массиве используются в HEX, а сложение будет оперировать с цифрами как в DEC.
# Сначала бы их прогнать через конвертер HEX to DEC (к примеру, через команду printf)
# printf "%d\n" 0xFF
# 255
# а потом после сложения конвертировать назад...
# printf '%x\n' 255
# ff
# Я не стал вводить еще две промежуточные переменные HEX2DEC и DEC2HEX,
# т.к. даже не уверен, что нижеидущие команды сложения будут работать...
A=`expr ${D2[0]} + ${D3[0]} + ${D4[0]} + ${D5[0]}`
B=`expr ${D2[1]} + ${D3[1]} + ${D4[1]} + ${D5[1]}`
C=`expr ${D2[2]} + ${D3[2]} + ${D4[2]} + ${D5[2]}`
D=`expr ${D2[3]} + ${D3[3]} + ${D4[3]} + ${D5[3]}`
E=`expr ${D2[4]} + ${D3[4]} + ${D4[4]} + ${D5[4]}`
F=`expr ${D2[5]} + ${D3[5]} + ${D4[5]} + ${D5[5]}`
G=`expr ${D2[6]} + ${D3[6]} + ${D4[6]} + ${D5[6]}`

# Ну и наконец, вывод часиков должен будет осуществляться этими командами,
# не считая, что еще нужны команды инициализации...
$REG32 $VFDO 0x"$A"C044;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$B"C244;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$C"C444;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$D"C644;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$E"C844;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$F"CA44;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$G"CC44;$REG32 $VFD_WRCTL 0x1370      

Было бы замечательно, если бы кто-нибудь продвинутый в знаниях по написанию скриптов (модулей на php) довел бы все это до ума. ;)
Был бы премного благодарен...
RTD1073DD: HDS6L (AMP r13 + noGUI)
RTD1185DD: XDS7GL (iNeXT TV 1.31_moS_r0)
RTD1186DD: XDS73D, Playon!HD3 mini (iNeXT HD1 2.20_r1); XDS8003D - (AMPS_r6_noGUI)
User avatar
_Danila_Master_
 
Posts: 25
Joined: 22 Mar 2015, 02:27
Location: Новороссийск

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby Virtual » 04 Mar 2017, 10:28

заготовка пробник на пхп
vfd.zip
(1.06 KiB) Downloaded 340 times

сделав chmod +w vfd.php можно будет запускать как обычный баш скрипт....
ток до вызова не забываем профиль настроить (дабы moS работал)
вида:
# for php
. /usr/local/etc/profile
/usr/local/etc/vfd.php &


PS под строкой "привет мир" наработка по работе с "видеобуфером" в файле.
PSPS ман по битовым операторам:
http://php.net/manual/ru/language.operators.bitwise.php
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6860
Joined: 01 Oct 2010, 17:17
Location: RU

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby _Danila_Master_ » 09 Mar 2017, 04:26

...пока никто не реализовал часы на дисплюе, сделал скринсейвер в бесконечном цикле:
Code: Select all
#!/bin/sh
i=1
while true
do
#echo $i; sleep 1

min=15
max=254
a=$(( min + ($RANDOM*(max-min))>>15 ))
b=$(( min + ($RANDOM*(max-min))>>15 ))
c=$(( min + ($RANDOM*(max-min))>>15 ))
d=$(( min + ($RANDOM*(max-min))>>15 ))
e=$(( min + ($RANDOM*(max-min))>>15 ))
f=$(( min + ($RANDOM*(max-min))>>15 ))
g=$(( min + ($RANDOM*(max-min))>>15 ))
A=$(printf '%x\n' $a)
B=$(printf '%x\n' $b)
C=$(printf '%x\n' $c)
D=$(printf '%x\n' $d)
E=$(printf '%x\n' $e)
F=$(printf '%x\n' $f)
G=$(printf '%x\n' $g)

$REG32 $VFDO 0x"$A"C044;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$B"C244;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$C"C444;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$D"C644;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$E"C844;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$F"CA44;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$G"CC44;$REG32 $VFD_WRCTL 0x1370      
sleep 1
i=`expr $i + 1`
done
В данном случае, все горизонтальные сегменты цифирь (не считая пирога и инф. надписей слева - они никак не похожи на горизонтальные) рандомно выводятся на дисплей с интервалом в 1 секунду...
Если убрать # то будут выводиться и остальные (вертикальные сегменты).

ЗЫ Иногда причудливые полу-надписи получаются (в зависимости от вашей фантазии) ;)
RTD1073DD: HDS6L (AMP r13 + noGUI)
RTD1185DD: XDS7GL (iNeXT TV 1.31_moS_r0)
RTD1186DD: XDS73D, Playon!HD3 mini (iNeXT HD1 2.20_r1); XDS8003D - (AMPS_r6_noGUI)
User avatar
_Danila_Master_
 
Posts: 25
Joined: 22 Mar 2015, 02:27
Location: Новороссийск

Re: VFD интерфейс в RTD, и все что на него можно повесить.

Postby _Danila_Master_ » 11 Mar 2017, 04:37

...в продолжение предыдущего поста...
Более эстетичный вариант, когда задействованы только знаки цифр с 1 по 6 (не задействованы спец.символы, пирог и 7 цифиря)
Code: Select all
#!/bin/sh
i=1
while true
do
#echo $i; sleep 1

min=0
max=16

a=$(( min + ($RANDOM*(max-min))>>2 ))
b=$(( min + ($RANDOM*(max-min))>>2 ))
c=$(( min + ($RANDOM*(max-min))>>2 ))
d=$(( min + ($RANDOM*(max-min))>>2 ))
e=$(( min + ($RANDOM*(max-min))>>2 ))
f=$(( min + ($RANDOM*(max-min))>>2 ))
g=$(( min + ($RANDOM*(max-min))>>2 ))
A=$(printf '%x\n' $a)
B=$(printf '%x\n' $b)
C=$(printf '%x\n' $c)
D=$(printf '%x\n' $d)
E=$(printf '%x\n' $e)
F=$(printf '%x\n' $f)
G=$(printf '%x\n' $g)
$REG32 $VFDO 0x"$A"C044;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$B"C244;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$C"C444;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$D"C644;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$E"C844;$REG32 $VFD_WRCTL 0x1370      
#$REG32 $VFDO 0x"$F"CA44;$REG32 $VFD_WRCTL 0x1370      
$REG32 $VFDO 0x"$G"CC44;$REG32 $VFD_WRCTL 0x1370      
usleep 500000
i=`expr $i + 1`
done


Но далее речь пойдет об еще одном варианте вывода на экран (по команде 40)...

Ранее она уже упоминалась на примере, когда с помощью 4 последовательных (одинаковых) команд, отправляемых в SEND4, зажигался весь экран:
Code: Select all
#!/bin/sh
#
#LED DRIVER TM1668 CONTROL
#for RTD1186DD
#
#VFD INIT
VFD_CTL=0xB8007200
VFD_WRCTL=0xB8007204
VFDO=0xB8007208
VFD_ARDCTL=0xB800720C
VFD_KPADLIE=0xB8007210
VFD_KPADHIE=0xB8007214
VFD_SWIE=0xB8007218

SEND4=0x00F0
SEND3=0x0070
SEND2=0x0030
SEND1=0x0010

D0=0x00000000
DF=0xFFFFFFFF

REG32="/usr/local/etc/mos/bin/gpio -n:p"
#########
# Устанавливаем подсветку
$REG32 $VFDO 0x00008807;$REG32 $VFD_WRCTL 0x00001330
#                   ^ ^
# Яркость___________| | (7(выкл.) ; 8(мин.)...F(макс.)
# Кол-во сегментов____|

### Подготовка к зажиганию по строкам
$REG32 $VFDO 0x00C044;$REG32 $VFD_WRCTL 0x1370
$REG32 $VFDO 0xC040;$REG32 $VFD_WRCTL 0x0000330
# Зажигает все табло в 4 этапа по строкам...
$REG32 $VFDO 0xFFFFFFFF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO 0xFFFFFFFF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO 0xFFFFFFFF;$REG32 $VFD_WRCTL $SEND4
$REG32 $VFDO 0xFFFFFFFF;$REG32 $VFD_WRCTL $SEND4


Как мне ранее объяснял ув. Virtual
Code: Select all
#$REG32 $VFDO 0xC040;$REG32 $VFD_WRCTL 0x0000330
#               ^^^^
# [это управляющая команда]
# выбрать адрес C0 (нулевой адрес дисплея)
# режим 40 (с автоинкрементом, то есть каждый новый байт будет писаться в следующий адрес, и по кругу)

#$REG32 $VFDO 0x00000001;$REG32 $VFD_WRCTL $SEND2
#                     ^^
# эта команда обозначает что мы вдуваем 2 байта 0x00 0x01 (16 бит!!!)
# и если ранее был выбран режим 40, то в текущее место памяти дисплея.

Немного по разбирался с данным алгоритмом, получил такие результаты
Code: Select all
# Выбираем адрес C0 (нулевой адрес дисплея)
$REG32 $VFDO 0xC040;$REG32 $VFD_WRCTL 0x0000330
# Переменные ввел для облегчения нахождения адресов при экспериментах.
# В данном случае, из-за этого зажигаются/гаснут все сегменты рассчитанного символа.
# При необходимости вывода разных символов (посегментно), придется править каждую строку отдельно.
P1=00;P2=00;P3=00;P4=74
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #A
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #B
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #C
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #D
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #E
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #F
$REG32 $VFDO 0x"$P1""$P2""$P3""$P4";$REG32 $VFD_WRCTL $SEND2 #G
#Таблица расположения символов в соответствии с адресацией:
#--------------------------------------------
#|00000000|SL|PC|D1|D2|D3|:|D4|D5|:|D6|D7|SR|
#--------------------------------------------
#|00000000|__|__|__|__|__|:|__|__|:|__|__|__|
#|00000001|XX|__|__|__|__|:|__|__|:|__|__|__|
#|00000002|__|XX|__|__|__|:|__|__|:|__|__|__|
#|00000004|__|__|__|__|XX|:|__|__|:|__|__|__|
#|00000008|__|__|XX|__|__|:|__|__|:|__|__|__|
#|00000010|__|__|__|XX|__|:|__|__|:|__|__|__|
#|00000020|__|__|__|__|__|:|XX|__|:|__|__|__|
#|00000040|__|__|__|__|__|:|__|XX|:|__|__|__|
#|00000080|__|__|__|__|__|:|__|__|:|XX|__|__|
#|00000100|__|__|__|__|__|:|__|__|:|__|XX|__|
#|00000200|__|__|__|__|__|:|__|__|:|__|__|XX|
#--------------------------------------------

Чтобы вывести несколько символов (сегментов разных символов) одновременно, используем сложение адресов.
Например, необходимо вывести "Восьмерки" одновременно в поле символа D2,D3,D4,D5
D2=10
D3=04
D4=20
D5=40
10+04+20+40=74
Следовательно, команды будут:
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
#$REG32 $VFDO 0x00000074;$REG32 $VFD_WRCTL $SEND2
Если хотим в каждом поле вывести разные символы, то необходимо рассчитывать правильную комбинацию сегментов по всей выводимой строке...
Данный алгоритм для вывода всех сегментов всегда использует только 7 команд, в отличии от алгоритма команды 44 (там их 14)
Будет время, сделаю "считалочку" по этой команде в Екселе...
RTD1073DD: HDS6L (AMP r13 + noGUI)
RTD1185DD: XDS7GL (iNeXT TV 1.31_moS_r0)
RTD1186DD: XDS73D, Playon!HD3 mini (iNeXT HD1 2.20_r1); XDS8003D - (AMPS_r6_noGUI)
User avatar
_Danila_Master_
 
Posts: 25
Joined: 22 Mar 2015, 02:27
Location: Новороссийск

PreviousNext

Return to Hardware

Who is online

Users browsing this forum: No registered users and 2 guests

cron