Реализация Графического Языка Программирования
Re: Реализация Графического Языка Программирования
Сделал более наглядный алгоритм:
- Реклама
Re: Реализация Графического Языка Программирования
Добавил новый блок:
Re: Реализация Графического Языка Программирования
Добавил возможность использования миниатюр, при оформлении FBD блоков:
http://horizontautomatics.ru/Configurat ... id=addpict
http://horizontautomatics.ru/Configurat ... id=addpict
Re: Реализация Графического Языка Программирования
Добавил FBD блок "Вхождение в диапазон"
Re: Реализация Графического Языка Программирования
Упрощение конфигурации для проекта "Светофор".

Размер прошивки 1094 байта.

Размер прошивки 1094 байта.
- Реклама
Re: Реализация Графического Языка Программирования
Столкнулся с проблемой, на нахождение проблемы потратил половина дня. Проблема оказалась в том что под вектор прерывания отводится либо 2 либо 4 байта памяти.
Например ATtiny13a, 10 - векторов по 2 байта под вектор:
а для ATmega328p, 26 - векторов по 4 байта под вектор:
Вероятно в файле описания устройства ATmega328p неточность, адреса должны идти 0x0000, 0x0004, 0x0008, 0x000С, ...
Таким образом обработчик векторов для ATtiny13a должен иметь вид:
а для ATmega328p:
Например ATtiny13a, 10 - векторов по 2 байта под вектор:
Код: Выделить всё
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0001 ; External Interrupt 0
.equ PCI0addr = 0x0002 ; External Interrupt Request 0
.equ OVF0addr = 0x0003 ; Timer/Counter0 Overflow
.equ ERDYaddr = 0x0004 ; EEPROM Ready
.equ ACIaddr = 0x0005 ; Analog Comparator
.equ OC0Aaddr = 0x0006 ; Timer/Counter Compare Match A
.equ OC0Baddr = 0x0007 ; Timer/Counter Compare Match B
.equ WDTaddr = 0x0008 ; Watchdog Time-out
.equ ADCCaddr = 0x0009 ; ADC Conversion Complete
.equ INT_VECTORS_SIZE = 10 ; size in words
Код: Выделить всё
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0002 ; External Interrupt Request 0
.equ INT1addr = 0x0004 ; External Interrupt Request 1
.equ PCI0addr = 0x0006 ; Pin Change Interrupt Request 0
.equ PCI1addr = 0x0008 ; Pin Change Interrupt Request 0
.equ PCI2addr = 0x000a ; Pin Change Interrupt Request 1
.equ WDTaddr = 0x000c ; Watchdog Time-out Interrupt
.equ OC2Aaddr = 0x000e ; Timer/Counter2 Compare Match A
.equ OC2Baddr = 0x0010 ; Timer/Counter2 Compare Match A
.equ OVF2addr = 0x0012 ; Timer/Counter2 Overflow
.equ ICP1addr = 0x0014 ; Timer/Counter1 Capture Event
.equ OC1Aaddr = 0x0016 ; Timer/Counter1 Compare Match A
.equ OC1Baddr = 0x0018 ; Timer/Counter1 Compare Match B
.equ OVF1addr = 0x001a ; Timer/Counter1 Overflow
.equ OC0Aaddr = 0x001c ; TimerCounter0 Compare Match A
.equ OC0Baddr = 0x001e ; TimerCounter0 Compare Match B
.equ OVF0addr = 0x0020 ; Timer/Couner0 Overflow
.equ SPIaddr = 0x0022 ; SPI Serial Transfer Complete
.equ URXCaddr = 0x0024 ; USART Rx Complete
.equ UDREaddr = 0x0026 ; USART, Data Register Empty
.equ UTXCaddr = 0x0028 ; USART Tx Complete
.equ ADCCaddr = 0x002a ; ADC Conversion Complete
.equ ERDYaddr = 0x002c ; EEPROM Ready
.equ ACIaddr = 0x002e ; Analog Comparator
.equ TWIaddr = 0x0030 ; Two-wire Serial Interface
.equ SPMRaddr = 0x0032 ; Store Program Memory Read
.equ INT_VECTORS_SIZE = 52 ; size in words
Таким образом обработчик векторов для ATtiny13a должен иметь вид:
Код: Выделить всё
rjmp
rjmp (rjmp - занимает 2 байта)
reti (заглушка, занимает 2 байта)
...Код: Выделить всё
jmp
jmp (jmp - занимает 4 байта)
reti (заглушка, занимает 2 байта)
nop (пустая команда, для дополнения 4 байт)
...Re: Реализация Графического Языка Программирования
Как, по файлу описания устройства, определить размер отводимый под вектор прерывания?
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Реализация Графического Языка Программирования
Код: Выделить всё
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ FLASHEND = 0x0fff ; Note: Word address
Адреса векторов в файле описания - в словах, поэтому для тини: 0000,0001,0002,... а для мег больше 8к: 0000,0002,0004...
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Re: Реализация Графического Языка Программирования
Спасибо. Внес необходимые доработки в программу.Engineer_Keen писал(а):Если FLASHEND больше 0х0fff (4кслов=8кбайт), то разрядности RJMP не хватит чтобы попасть в любое место флеша, поэтому в таких контроллерах размеры векторов прерывания по два слова, чтобы вместить команду JMP.Код: Выделить всё
; ***** DATA MEMORY DECLARATIONS ***************************************** .equ FLASHEND = 0x0fff ; Note: Word address
Адреса векторов в файле описания - в словах, поэтому для тини: 0000,0001,0002,... а для мег больше 8к: 0000,0002,0004...
Re: Реализация Графического Языка Программирования
Добавил возможность, в программе Configurator, динамически
определять индексацию FBD блоков. Доработана библиотека "EvAVRbuilder.dll"
и "EvKernelConfig.dll". Благодаря такому подходу, генерируемая прошивка
уменьшилась на несколько десятков байт, а также упростился процесс создания
новых FBD блоков.
http://horizontautomatics.ru/Configurat ... d=compiler
определять индексацию FBD блоков. Доработана библиотека "EvAVRbuilder.dll"
и "EvKernelConfig.dll". Благодаря такому подходу, генерируемая прошивка
уменьшилась на несколько десятков байт, а также упростился процесс создания
новых FBD блоков.
http://horizontautomatics.ru/Configurat ... d=compiler
Re: Реализация Графического Языка Программирования
Добавил блоки ШИМ для ATtiny13a, необходимо тестирование.
Re: Реализация Графического Языка Программирования
Реализовал исполнительную программу в торговой платформе Metatrader:
https://youtu.be/JXdMS0SqR_8
https://youtu.be/JXdMS0SqR_8
Re: Реализация Графического Языка Программирования
Нужен ассемблерный код, для деления и умножения целых чисел. Кто ибо писал данный код?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18673
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Реализация Графического Языка Программирования
про деление не помню, а умножение по-моему есть в одном из апноутов самой фирмы Атмел - не пробовали искать?Lihouzov писал(а):Нужен ассемблерный код, для деления и умножения целых чисел. Кто ибо писал данный код?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- НАПАЛМ
- Это не хвост, это антенна
- Сообщения: 1314
- Зарегистрирован: Пт ноя 27, 2009 19:47:13
- Откуда: Казань
Re: Реализация Графического Языка Программирования
Умножение по заданию в инсте писал, правда только для натуральных чисел.
- Вложения
-
- Умножение.txt
- (1.97 КБ) 237 скачиваний
Re: Реализация Графического Языка Программирования
http://forum.vingrad.ru/forum/topic-72209.htmlLihouzov писал(а):Нужен ассемблерный код, для деления и умножения целых чисел. Кто ибо писал данный код?
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: Реализация Графического Языка Программирования
есть у меня подпрограммки деления 2/1 (значения указаны в байтах, 2 байта делятся на 1 байт); 3/1; 3/2; 4/1; 4/2 и умножения 1*1; 2*1; 2*2; 3*1. При делении остается байт с остатком. Сейчас нет возможности выложить их. В выходные постараюсь выложить если раньше ни кто не поможет.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Re: Реализация Графического Языка Программирования
Спасибо нашел.
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: Реализация Графического Языка Программирования
думаю в моих понятнее. хотя как говорится автору своего творения всегда понятнее свое творение, нежели чье то чужое. В целом принцип тот же. Только меньше голематьи всякой.
- Вложения
-
- div_mul.rar
- (1.28 КБ) 191 скачивание
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Re: Реализация Графического Языка Программирования
Спасибо за поддержку.
Добавил блоки целочисленного деления и умножения.
Добавил блоки целочисленного деления и умножения.


