Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 07:50:04
ppp
Ну, это да. Ярко вспыхивают и затухают. Серьезного инвестора искать нужно, а не помощников. Будут деньги, набрать их не проблема. Да и отвлекаться на добычу еды не надо будет. Опять же, возникнут обязательства и просто так забросить проект уже не получится.
В принципе, показать инвестору уже есть что.
Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 08:07:00
ARV
сомневаюсь, что инвестор клюнет. не просматривается тут явная коммерческая выгода.
можно попробовать на кикстартере или нашем аналогичном ресурсе попытать счастья...
и вообще, я слабо верю в сам принцип "инвестирования": будет инвестор - тут же найдутся желающие попилить бабло и выдать пшик. вспомните наши ё-мобили, ётафоны, российские виндовс и т.п.
имхо, тут нужна команда энтузиастов-профессионалов, готовых на собственной инициативе вытянуть проект до уровня начала коммерческой эксплуатации - тогда еще шанс есть. но я в это не верю...
извините за пессимизм...
Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 08:39:22
ppp
Сейчас настроение человеку испортим. Все, я в эту сторону больше не буду.
А сама идея и реализация замечательная. Чайник в восторге . Из пожеланий - включить в дистрибутив или на сайте выкладывать примерчики с каждым из блоков. Такие, как в первом видеоролике.
Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 09:05:12
Pink-Pank
А чем FlowCode не устраивает? Опять изобретаем велосипед?
К тому же он есть и под АРМ и под Пик и под МСП.
Для чайников и для осуществления мелких домашних поделок - самое то
Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 16:10:55
xkp
Lihouzov, Как там тестинг продвигается7
Re: Реализация Графического Языка Программирования
Добавлено: Ср дек 03, 2014 18:06:41
Lihouzov
Целых два часа мучился, множество поправок... Заработало.
Создал программу "вольтметр", на дисплей выводится вещественное число с плавающей точкой.
Правда вывод числа в ASCII.
decind:
cpi tmp,$ff
brne dec_n
ret
dec_n:
ldi zh,high(2*tabind)
ldi zl,low(2*tabind)
add zl,tmp
clr tmp
adc zh,tmp
lpm
mov tmp,r0
ret
;=============
;= таблица символов для семисегментного индикатора =
;= 0 1 2 3 4 5 6 7 8 9 A B C D E F =
;= $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $0a $0b $0c $0d $0e $0f =
;=============
;= G H J L P q r t U y - Є =
;= $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1a $1b =
;===============
tabind:
.dw 0b1111100111000000 ;1-0
.dw 0b1011000010100100 ;3-2
.dw 0b1001001010011001 ;5-4
.dw 0b1111100010000010 ;7-6
.dw 0b1001000010000000 ;9-8
.dw 0b1000001110001000 ;B-A
.dw 0b1010000111000110 ;D-C
.dw 0b1000111010000110 ;F-E
.dw 0b1000100111000010 ;H-G
.dw 0b1100011111100001 ;L-J
.dw 0b1001100010001100 ;q-P
.dw 0b1000011110101111 ;t-r
.dw 0b1001000111000001 ;y-U
.dw 0b1111111110111111 ;Є--
tmp это регистр r16. в него записываем порядковый номер цифры, и в нем же мы получаем переконвертируемый результат. Биты регистра с 0 по 6 соответствуют сегментам с a до g, 7 бит регистра это точка.
Re: Реализация Графического Языка Программирования
#ifndef _FBD41_
#define _FBD41_ FBD41
#message define FBD41 (LED_7_SEG)__FILE__
.SET LED_7_SEG_DATA_SIZE = 4
.SET LED_7_SEG_DATA_RAM = FBD_DATA_RAM //Глобальные данные для LED
.SET FBD_DATA_RAM = LED_7_SEG_DATA_RAM + LED_7_SEG_DATA_SIZE //Выделяем память для LED
//Размер описания FDB блока 16 байт
//4 байта -строка инициализации
//12 байт- вывода блока A-F,DP,N1-N4
// Оперативная память
//1 байт счетчик
// биты 7-4 - выводимый символ
// биты 3-0 - счетчик
FBD41_init:
ldi A, LED_7_SEG_DATA_SIZE
ldi B, 0
FBD41_Loop_LED_Copy:
sub A, One
brcs FBD41_End_LED_copy
rcall Read_cfg
mov ZL, B
rcall LCD_out_char
inc B
rjmp FBD41_Loop_LED_Copy
FBD41_End_LED_copy:
ADIW YL, 12
ADIW XL, 1 //Пропускаем
ret;
FBD41_run:
ADIW YL, 4 //Пропускаем строку инициализации
ld H, X //Получаем байт счетчика
inc H //Увеличить счетчик
st X+, H //Сохраняем байт счетчика
mov F, H //Копируем
andi F, 0b00011000 //Получаем номер символа
// andi H, 0b00000111 //Счетчик
// breq FBD41_out_null
inc H
andi H, 0b00000111 //Счетчик
breq FBD41_out_null
lsl F //Номер символа 0b000000XX
swap F //Номер символа 0b00000XX0
//lsr F //Номер символа 0b000000XX
ldi ZL, Low(LED_7_SEG_DATA_RAM) ; адрес
ldi ZH, High(LED_7_SEG_DATA_RAM) ; адрес
add ZL, F
adc ZH, Zero
ld A, Z //Загружаем символ
//***************************************************************
//Здесь необходимо преобразовать ASCII в представление 7-seg
subi A, 0x2D
cpi A, 25
brmi FBD41_no_correct
ldi A, 2
FBD41_no_correct:
ldi ZH, high(2*FBD41_tabl_7_seg)
ldi ZL, low(2*FBD41_tabl_7_seg)
add ZL, A
adc ZH, Zero
lpm
mov A, Addr_Data
//***************************************************************
BST A, 0
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод A
BST A, 1
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод B
BST A, 2
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод C
BST A, 3
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод D
BST A, 4
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод E
BST A, 5
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод F
BST A, 6
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод G
BST A, 7
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод DP
ldi A, 0b000000001 //Преобразуем 0b0XX00000 -> 0b00001000
sbrc F, 0 //Преобразуем 0b0XX00000 -> 0b00001000
lsl A //Преобразуем 0b0XX00000 -> 0b00001000
sbrc F, 1 //Преобразуем 0b0XX00000 -> 0b00001000
lsl A //Преобразуем 0b0XX00000 -> 0b00001000
sbrc F, 1 //Преобразуем 0b0XX00000 -> 0b00001000
lsl A //Преобразуем 0b0XX00000 -> 0b00001000
//sbrc F, 2 //Преобразуем 0b0XX00000 -> 0b00001000
//swap A //Преобразуем 0b0XX00000 -> 0b00001000
com A
BST A, 0
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод N1
BST A, 1
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод N2
BST A, 2
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод N3
BST A, 3
BLD Uz1L, 0
rcall Read_cfg_Save_Uz1 //Вывод N4
ret
FBD41_out_null:
clr Uz1H //Выводим ноль
clr Uz1L //Выводим ноль
rcall Read_cfg_Save_Uz1 //Вывод A
rcall Read_cfg_Save_Uz1 //Вывод B
rcall Read_cfg_Save_Uz1 //Вывод C
rcall Read_cfg_Save_Uz1 //Вывод D
rcall Read_cfg_Save_Uz1 //Вывод E
rcall Read_cfg_Save_Uz1 //Вывод F
rcall Read_cfg_Save_Uz1 //Вывод G
rcall Read_cfg_Save_Uz1 //Вывод DP
inc Uz1L
rcall Read_cfg_Save_Uz1 //Вывод N1
rcall Read_cfg_Save_Uz1 //Вывод N2
rcall Read_cfg_Save_Uz1 //Вывод N3
rcall Read_cfg_Save_Uz1 //Вывод N4
ret;
FBD41:
.db 16, 1 //Размер FBD блока, необходимая оперативная память
.dw FBD41_run, FBD41_init
// 0 | - | 2D | 0b01000000
// 1 | . | 2E | 0b10000000
// 2 | / | 2F | 0b00000000
// 3 | 0 | 30 | 0b00111111
// 4 | 1 | 31 | 0b00000110
// 5 | 2 | 32 | 0b01011011
// 6 | 3 | 33 | 0b01001111
// 7 | 4 | 34 | 0b01100110
// 8 | 5 | 35 | 0b01101101
// 9 | 6 | 36 | 0b01111101
// 10 | 7 | 37 | 0b00000111
// 11 | 8 | 38 | 0b01111111
// 12 | 9 | 39 | 0b01101111
// 13 | - | 3A | 0b00000000
// 14 | - | 3B | 0b00000000
// 15 | - | 3C | 0b00000000
// 16 | - | 3D | 0b00000000
// 17 | - | 3E | 0b00000000
// 18 | - | 3F | 0b00000000
// 19 | - | 40 | 0b00000000
// 20 | A | 41 | 0b01110111
// 21 | B | 42 | 0b01111100
// 22 | C | 43 | 0b00111001
// 23 | D | 44 | 0b01011110
// 24 | E | 45 | 0b01111001
// 25 | F | 46 | 0b01110001
FBD41_tabl_7_seg:
.db 0b01000000, 0b10000000, 0b00000000, 0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101
.db 0b00000111, 0b01111111, 0b01101111, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000
.db 0b01110111, 0b01111100, 0b00111001, 0b01011110, 0b01111001, 0b01110001
LCD_out_char: //ZL-позиция вывода Addr_Data-код выводимого символа
cpi ZL, LED_7_SEG_DATA_SIZE
brcc LCD_out_char_end
ldi ZH, Low(LED_7_SEG_DATA_RAM)
add ZL, ZH
ldi ZH, High(LED_7_SEG_DATA_RAM)
adc ZH, Zero
st Z, Addr_Data
LCD_out_char_end:
ret
#else
#error redeclared FBD41 __FILE__
#endif
Чуть доработаю и выложу для обновления.
Re: Реализация Графического Языка Программирования
Добавлено: Чт дек 04, 2014 15:21:33
xkp
точка плавает как то неправильно. точнее отображается неправильно... надо что бы отображалась вместе с еденицами числа, а не на следующем разряде. зачем терять лишний разряд?
когда отображает десятки а затем переходит на еденицы, все число уходит влево, не радует глаз. надо какую то привязку точке давать, какой нито переключатель программный сделать что бы либо точка плавает, либо все число плавает а точка привязана к разряду определенному. Я так понимаю просто точка у тебя занимает отдельный разряд из-за структуры вывода на LCD. надо в индикаторе (семисегментном) дописать кусок кода: если точка то накладываем ее на предыдущий разряд и продолжаем печатать дальше, только наверное надо будет поставить что бы выводил не 4 символа с 0 поз, а 5 символов. Ну а в семисегментнике игнорировать последнюю если не было точки.
А в целом очень даже хорошо!!!
Re: Реализация Графического Языка Программирования
Добавлено: Чт дек 04, 2014 16:36:21
ppp
А свойства для настройки ОА/ОК в блоке 7seg_4 не планируете?
Re: Реализация Графического Языка Программирования
Добавлено: Чт дек 04, 2014 16:52:28
xkp
Вроде как планировалось сделать 4 разные блока. Я где то выше писал об этом.
вот
Спойлер
xkp писал(а):
2. Выходы: общий/сегменты GND/Vcc, GND/GND, Vcc/GND Vcc/Vcc делать с переключением в ПП или разные ПП писать под них?
Lihouzov писал(а):
2. блок разные, количество блоков никто не ограничивает.
Re: Реализация Графического Языка Программирования
Добавлено: Чт дек 04, 2014 17:15:57
Lihouzov
Доделать до конца один, а потом добавить другие, либо добавить свойства "ОА/ОК в блоке 7seg_4";
На счет лишнего знакоместа.
Есть функция которая пишет в видеопамять:
LCD_out_char: //ZL-позиция вывода Addr_Data-код выводимого символа
cpi ZL, LED_7_SEG_DATA_SIZE
brcc LCD_out_char_end
ldi ZH, Low(LED_7_SEG_DATA_RAM)
add ZL, ZH
ldi ZH, High(LED_7_SEG_DATA_RAM)
adc ZH, Zero
st Z, Addr_Data
LCD_out_char_end:
ret
Возможно ее придется доработать и вставить код преобразования ASCII в представление 7-seg с последующим объединения символов
Re: Реализация Графического Языка Программирования
Добавлено: Пт дек 05, 2014 18:07:45
Lihouzov
xkp писал(а):хотелось бы увидеть индикатор LCD 16*2 с поддержкой русского язык
Добавил. Русский язык зависит от дисплея.
Обновил программу, теперь в блоках можно использовать прерывания.
Re: Реализация Графического Языка Программирования
Добавлено: Пт дек 05, 2014 18:16:32
xkp
семисегментник не работает. или еще не доделал?
щас LCD потестю
ЗЫ. с LCD та же история с той же ошибкой
Re: Реализация Графического Языка Программирования
Добавлено: Сб дек 06, 2014 05:43:07
Lihouzov
Приветствую всех!!!
Я сделал изменения в программе Configurator, перенес сборку проекта в отдельную библиотеку (для микроконтроллеров avr это EvAVRbuidr.dll). Программу выложил на обновление, а саму библиотеку забыл.
Библиотеку я сейчас добавил. Необходимо обновить Configurator. Должно работать.
Re: Реализация Графического Языка Программирования
Добавлено: Сб дек 06, 2014 14:31:55
xkp
С лева в колонке где выбор элементов (порты, блоки в разработке и тд) два одинаковых меню "индикаторы"
Re: Реализация Графического Языка Программирования
Добавлено: Сб дек 06, 2014 18:49:39
lazudhic
готов 500р подарить автору если все блоки будут русскоязычными , без иностранных слов
поддержим же человека ради нас старается время тратит !!!!
Re: Реализация Графического Языка Программирования
Добавлено: Сб дек 06, 2014 20:00:13
xkp
что то не работает крайний левый разряд индикатора по вышевыложенной схеме (видео). При выводе константы напрямую на индикатор все отображается правильно. При измерении напряжения (АЦП) проблема...
Видео без звука.
тут сначало вывожу константу - все ок! потом собираю проект по авторской схеме (выше в видео), только порты по другому стоят. разряды индикатора подключены к младшим выводам порта С (0,1,2,3), вход АЦП к порту С4.
а тут поменял подключение левого разряда с порта С0 на С5