Difference between revisions of "Component: Timed Interval (Timing)"

From Flowcode Help
Jump to navigationJump to search
 
(6 intermediate revisions by 2 users not shown)
Line 23: Line 23:
 
==Detailed description==
 
==Detailed description==
  
 +
The Timed Interval component takes the headache out of setting up timer interrupts to interrupt an amount of fixed microseconds, milliseconds, seconds, minutes, hours or days.
  
 +
[[File:Timed Interval1.png]]
  
  
  
 +
After selecting the Time Unit, and entering Time Period, the estimated best will show the exact time the callback macro is accessed.
  
 +
[[File:Timed Interval2.png]]
  
  
 +
You can even send the required delay within simulation (Timer Delay (ms).
  
 +
Unfortunately there is a small simulation only bug that is preventing the global variable within callback macro from updating, it all works on your embedded hardware.
  
 +
The workaround (included within the example) for your own project is as follows.
  
 +
First set up your timed interval component within properties along with the callback macro
  
 +
Within the timed interval example, select the TimedInterval callback macro ,then select the Built-in Function::Debug.PrintLn(" ")
 +
 +
[[File:Timed Interval3.png]]
  
 +
Right-click then select copy.
  
 +
Paste the Built-in Function within the callback macro of your new project.
  
''No detailed description exists yet for this component''
+
Now the interval timer component will simulate correctly.
  
 
==Examples==
 
==Examples==
  
  
 +
Example program showing how to use the Timed component to trigger a callback macro at precise intervals e.g. 1 second.
  
 
+
{{Fcfile|Timed_interval_example.fcfx|One second timed interval component example }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
''<span style="color:red;">No additional examples</span>''
 
 
 
 
 
 
 
 
 
 
 
  
 
==Macro reference==
 
==Macro reference==
Line 91: Line 87:
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
 
 
  
  

Latest revision as of 12:20, 24 January 2025

Author Matrix TSL
Version 1.1
Category Timing


Timed Interval component

Allows you to setup a specific timed interval via the use of a hardware timer peripheral. Useful for regular time accurate periodic polling and sampling.

Component Source Code

Please click here to download the component source project: FC_Comp_Source_TimerIntervalComponent.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_TimerIntervalComponent.fcfx

Detailed description

The Timed Interval component takes the headache out of setting up timer interrupts to interrupt an amount of fixed microseconds, milliseconds, seconds, minutes, hours or days.

Timed Interval1.png


After selecting the Time Unit, and entering Time Period, the estimated best will show the exact time the callback macro is accessed.

Timed Interval2.png


You can even send the required delay within simulation (Timer Delay (ms).

Unfortunately there is a small simulation only bug that is preventing the global variable within callback macro from updating, it all works on your embedded hardware.

The workaround (included within the example) for your own project is as follows.

First set up your timed interval component within properties along with the callback macro

Within the timed interval example, select the TimedInterval callback macro ,then select the Built-in Function::Debug.PrintLn(" ")

Timed Interval3.png

Right-click then select copy.

Paste the Built-in Function within the callback macro of your new project.

Now the interval timer component will simulate correctly.

Examples

Example program showing how to use the Timed component to trigger a callback macro at precise intervals e.g. 1 second.

FC6 Icon.png One second timed interval component example

Macro reference

StartTimerInterval

Fc9-comp-macro.png StartTimerInterval
Starts the timer interval. 
Fc9-void-icon.png - VOID Return


StopTimerInterval

Fc9-comp-macro.png StopTimerInterval
Stops the timer interval. 
Fc9-void-icon.png - VOID Return


Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Interval Properties
Fc9-type-16-icon.png Time Unit
Unit of time used for the time period. For example you might want every 4 milliseconds or every 3 hours. 
Fc9-type-21-icon.png Time Period
Value of time used for the time period. For example you might want every 4 milliseconds or every 3 hours. 
Fc9-type-15-icon.png Estimated Best Period
The closest we can get to the required time period based on prescaler and postscaler settings. Smaller scalers provide finer resolution but impose limits on the maximum delay. 
Fc9-type-15-icon.png Max Time Measurement
The maximum time we can do based on the current timer and scaler settings. 
Fc9-type-22-icon.png Callback Macro
User defined macro automatically called on a periodic basis. 
Fc9-conn-icon.png Timer Properties
Fc9-type-16-icon.png Timer
Timer Peripheral to use to monitor the passage of time. 
Fc9-type-21-icon.png Bit Depth
Number of bits in the timer peripheral. 8-bit timers can count from 0-255 before overflowing. 16-bit timers can count from 0 to 65535 before overflowing. 
Fc9-type-16-icon.png Prescaler
Scaler applied to the timer, Small scalers allow for finer resolution but will limit the max time and also put more load on the microcontroller. Recommended to use as large a setting as possible which still provides enough accuracy.  
Fc9-type-16-icon.png PostScaler
Scaler applied to the timer, Small scalers allow for finer resolution but will limit the max time and also put more load on the microcontroller. Recommended to use as large a setting as possible which still provides enough accuracy.  
Fc9-conn-icon.png Simulation
Fc9-type-21-icon.png Timer Delay (ms)
Number of milliseconds between timer events which increment the simulated timer counter variable. 10ms will yield the highest resolution. Values less than this will likely just increase the error and making the timer run slow. Higher delays will yield greater accuracy.