Хорошая игрушка для тех, кто не хочет париться с программированием и нужно создать быстро и разово что-то простенькое. Кстати, а почему модуль, подключенный к АЦП перед множителем, назвается IntToString ? Это же - перевод в строку, а не в вещественное число. И каким образом потом эта строка умножилась на коэффициент ?
IntToSingl - преобразование целого числа в вещественное. Single - вещественное число одинарной точности (4 байта) Можно и не регистрироваться, просто обнови Configurator и HR_AVR. Исходный ассемблерный код любого блока доступен через меню вызванным над блоком.
Последний раз редактировалось Lihouzov Вс ноя 30, 2014 16:25:18, всего редактировалось 1 раз.
вроде разобрался с программой маленько. В принципе меня заинтересовала эта идея. Сделал все по вашему проекту но не хочет компилировать фаил прошивки Спойлер
ну и при открытии проекта выдает Спойлер если использовать вывод на индикатор через LCD_word то все работает. Очевидно проблема в IntToSingl
Последний раз редактировалось xkp Вс ноя 30, 2014 20:47:43, всего редактировалось 1 раз.
Re: Реализация Графического Языка Программирования
Вс ноя 30, 2014 17:41:18
Прикольно. Просто, удобно... Критиковать не буду, т.к. сам такое не смогу сделать. ) Однозначно плюс.
Но! Не много ли для ассемблера 600 Байт, чтобы помигать одним светодиодом???? С учетом того, что у меня АТтини13 с 1 кБайтом флеша... А я хочу туда еще много чего напихать.... У меня в нее программка перехвата ИК пульта с NЕC-протоколом (урезанным) и управление Н-мостом мотора заняла в районе 300-400 Байт на ассемблере.
//Размер описания FDB блока 4 байта //1 байт- вход S //1 байт- вход R //1 байт- выход //1 байт- начальное состояние //Оперативная память 1 байт //1 байт состояние триггера
FBD15_init: ADIW YL, 3 //пропускаем первые три байта конфигурации rcall Read_cfg //Читаем начальное состояние st X+, Addr_Data //Сохраняем начальное состояние ret //Окончание инициализации блока
FBD15_run: //======== Читаем данные блока ========= rcall Read_cfg_Load_Uz1 //вход S rcall Read_cfg_Load_Uz2 //вход R ld A, X //текущее состояние триггера //============= Логика работы FBD блока ==================
and Uz1L, One //and sbrc UZ1L, 0 //Проверка 1 на S mov A, One //Устанавливаем тригер and Uz2L, One //and sbrc UZ2L, 0 //Проверка 1 на R mov A, Zero //Сбрасываем тригер mov Uz1L, A //Копируем текущее состояние //============= Сохраняем результат ================== st X+, A rcall Read_cfg_Save_Uz1 //Сохраняем результат ADIW YL, 1 //пропускаем байт конфигурации ret;
Re: Реализация Графического Языка Программирования
Пн дек 01, 2014 07:10:17
у меня был припадок, во время которого я пытался разработать микро-ПЛК на AVR с простейшим вводом блок-схем. есть теоретические проработки псевдоязыка, которым описывается блок-схема. интерпретацией этого языка по моей задумке должен был заниматься AVR, что в итоге давало достаточно низкое быстродействие (порядка 1000 прогонов главного цикла в секунду) - ваш подход с компиляцией на ББ позволит существенно увеличить быстродействие. не знаю, будут ли полезны мои наработки, но если есть желание с ними ознакомиться - милости прошу в личку.
идею использовать ассемблер поддерживаю процентов на 40 - на остальные 60 я сторонник применения в подобной системе Си.
Re: Реализация Графического Языка Программирования
Пн дек 01, 2014 16:35:54
Могу взяться за код написания подпрограммы для 7-ми сегментников. 1. Сколько сегментов? 2. Выходы: общий/сегменты GND/Vcc, GND/GND, Vcc/GND Vcc/Vcc делать с переключением в ПП или разные ПП писать под них? 3. Какой вид ввода информации? Отдельные для каждого сегмента числа или сразу несколько знаков?
Re: Реализация Графического Языка Программирования
Пн дек 01, 2014 16:48:59
Отлично. 1. давай попробуем для 4 сегментов. 2. блок разные, количество блоков никто не ограничивает. 3. Сразу на несколько знаков. По принципу с LCD. Есть блок который выводит участок памяти на индикаторы в нашем случае 4 байта, а есть блоки которые в этот участок пишут данные.
То есть будет блок который отображает данные и множество блоков которые пишут данные.
Re: Реализация Графического Языка Программирования
Пн дек 01, 2014 17:10:45
4 байта? Я правда маленько не понимаю в выражениях "целые", "целочисленные" и тд. То есть каждый байт данных соответствует своему индикатору? Ну это облегчает задачу, можно еще и буквенные символы туда запихать, ну разумеется те, что можно написать на 7 сегментах. Будет выглядеть примерно так? 4 разряда * 7 сегментов + 1 точка
И еще вопрос в блок что верхний на моем рисунке данные в каком виде поступают? В регистрах, в памяти? В каких регистрах? В какой ячейке или под каким именем памяти?
Re: Реализация Графического Языка Программирования
Пн дек 01, 2014 17:16:51
xkp писал(а):4 байта? Я правда маленько не понимаю в выражениях "целые", "целочисленные" и тд. То есть каждый байт данных соответствует своему индикатору? Ну это облегчает задачу, можно еще и буквенные символы туда запихать, ну разумеется те, что можно написать на 7 сегментах.
4 байта - да. выражениях "целые", "целочисленные" и тд - тип соединительных выводов блока. То есть каждый байт данных соответствует своему индикатору -да