https://github.com/LDmicro/LDmicro/releases/tag/4.0.5
== Release 4.0.5
* Fixed: Bug with J,K,L ports addreses at ATMega2560.
Bug with addreses of ADC at ATMega2560. Tested in Proteus.
asm_demo_mega2560.zip contains LD, asm, hex, Proteus7 model. See end of the page:
https://github.com/LDmicro/LDm...R-Studio-or-PIC-MPLAB-software
* Added menu and shortcats:
"Insert Contacts: Internal Relay Shift+C"
"Insert Contacts: Output pin Shift+L"
"Insert Coil: Internal Relay Alt+L"
* Added in manual.txt:
Note: The several coils with the same 'YName' or 'RName' can be mentally
represented as a one microchip with multiple inputs and one output.
Normal and inverted input are directly transfers the input state (normal or
inverted) to the output. R, S, T inputs lock up (latch) the state of output.
The T input is positive edge triggered. R, S inputs are level sensitive.
If before R, S insert the "OSR: ONE-SHOT RISING" or
"OSF: ONE-SHOT FALLING" you get a "positive edge triggered" element.
If used only the R and S inputs you get classic RS-trigger,
that may be with more than two inputs. If add T input you get "newest" RST-trigger.
May be several R..R inputs, or several S..S inputs.
You can use any combination of inputs for one 'YName' or 'RName' coil.
See also COIL, T-TRIGGER in Release 4.0.3.
== Release 4.0.4
* HotFix: Fixed initialization error of all used banks of PIC's RAM from 4.0.1 version.
Not recomended to use with PIC's MCU releases 4.0.1 - 4.0.3.
== Release 4.0.3
* Fixed: The page correction error while the correction is crosses boundary page.
AUTO_PAGING version 4 for PIC's.
* Modified: You can set X input contacts to the HI level before simulating,
if in your real hardware device the initial state of X input contacts in HI level.
In release 3.5.0 for this feature used symbol '_' after X in contact name.
Now for this feature you can use checkbox
"Set HI input level before simulation" in contacts dialog.
This feature applies only in simulation mode,
and does not affect hex file in physical device.
This feature refers to MCU inputs, not to the external switches(devices/sources).
This feature not refers to negation or normal open NO or
normal closed NC contacts of switches.
Now you can use symbol '_' in the name to see it better (X_in).
* Modified: When selected mode is ("Simulation Mode"), and user
presses once the Spase key ("Single Cycle"), or hold down pressed the
Spase key("Single Cycle" ), then ladder diagram executes one cycle (or
repeatedly) and displayed correctly.
When then select "Start Real-Time Simulation" the ladder diagram is
in work, but can displayed in the one same condition. This happens only
when the cycle time is less than 10 ms and 10 ms, divided by the cycle
time gives an even number, and also 10 ms, divided by the timer time
gives an even number.
There are two causes for this strange behavior.
1) The LDmicro frame rate in "Real-Time Simulation" mode is 10 ms (100 Hz).
I.e. the ladder diagram state is displayed every 10 ms, but not the
every one cycle. If every 10 ms LD state is the same, then user sees the
same picture on the display. Although LD state chenged inside 10 ms over
and over again and go back to the same state.
2) I tried to show LD state at a random time within the 10 ms frame.
But WINAPI InvalidateRect() function works when there are no other
messages in the application queue for that window. And the screen is
redrawn also through an even number of times and showing the same picture
(LD state).
Now LDmicro used UpdateWindow() at a random time within the 10 ms frame.
UpdateWindow() function works without a queue and shows different states
of LD on the screen and picture is not "latched".
Note: The screen refreshes randomly LD state inside 10 ms frame
in "Real-Time Simulation" mode.
* Fixed: RETURN error in MUL,DIV elements in PIC10xxx, PIC12xx microcontroller family.
* Added element COIL, T-TRIGGER.
Added in manual.txt:
Terminology:
"Level sensitive" = output(element) controlled by the level of the input.
"Edge triggered" = output changes only at the point in time
when the input changes from value to the other. Can be positive
edge-triggered (0 to 1), or negative edge-triggered (1 to 0).
Most elements of LDmicro are "Level sensitive", some elements are
"positive edge-triggered".
> COIL, T-TRIGGER Rname Yname
----(T)---- ----(T)----
A coil T-trigger is edge-triggered flip-flop (toggle, tip-over, turn over).
A coil flip-flop every rising edge of the input condition (i.e.
what the input condition goes from false to true).
If rising edge detected, then if coil state is false it is sets true.
If next rising edge detected then if coil state is true it is sets to false.
This instruction must be the rightmost instruction in its rung.
You can simply present as a T-trigger with the positive
edge-triggered input.
* Added: MessageBox("Rename the ALL other 'N' contacts/coils named 'Name' to 'NewName' ?")
after editing the contacts/coils name.
* Added: Menu Edit->Cut Selected Element (Alt+Del). Then use menu
Edit->Paste Rung's/Element &Into Rung (Alt+Insert) to insert element
in new position.
* Added: Menu Edit->Replace Selected Element in Group.
For example: CTU->CTD->CTC->CTR->...